[3]:
import preprocessing.Preprocessing as pp
import classes.transportnetwork as tn
from visualisation.visualisation import *
from characterisation.degree import *
from characterisation.centrality import *
from characterisation.distance import *
from robustness_analysis.robustness import *
from ML.embedding import *
from clustering.cluster import *
from GNN.data import *
from GNN.model import *
from GNN.run import *

Create the network from a GTFS file#

[2]:
G = pp.create_network_from_GTFS('data/gtfs_3')
Network creation:
100%|██████████| 144634/144634 [00:29<00:00, 4831.40it/s]

Create the transport network object#

[3]:
TN = tn.TransportNetwork(G, pos_argument=["lon", "lat"], time_arguments=["departure_time", "arrival_time"])
[4]:
print(TN)
Graph type: <class 'networkx.classes.graph.Graph'>
- Number of nodes: 613
 |--- lon
 |--- lat
- Number of edges: 776
 |--- route_id
 |--- trip_id
 |--- euclidian_distance
 |--- distance
 |--- arrival_time
 |--- departure_time
Graph type: <class 'networkx.classes.digraph.DiGraph'>
- Number of nodes: 613
 |--- lon
 |--- lat
- Number of edges: 1333
 |--- route_id
 |--- trip_id
 |--- euclidian_distance
 |--- distance
 |--- arrival_time
 |--- departure_time
Graph type: <class 'networkx.classes.multigraph.MultiGraph'>
- Number of nodes: 613
 |--- lon
 |--- lat
- Number of edges: 81868
 |--- route_id
 |--- trip_id
 |--- euclidian_distance
 |--- distance
 |--- arrival_time
 |--- departure_time
Graph type: <class 'networkx.classes.multidigraph.MultiDiGraph'>
- Number of nodes: 613
 |--- lon
 |--- lat
- Number of edges: 140098
 |--- route_id
 |--- trip_id
 |--- euclidian_distance
 |--- distance
 |--- arrival_time
 |--- departure_time

Visualize the network#

[5]:
map_network(TN)
[6]:
map_dynamic_network(TN, step=100)

Characteristics of the network#

Degree analysis#

[7]:
degree_analysis = compute_node_degree_analysis(TN, data=False)
degree_analysis
[7]:
{'min_in_degree': 0,
 'max_in_degree': 2170,
 'min_out_degree': 0,
 'max_out_degree': 2170,
 'avg_out_degree': 228.54486133768353}
[8]:
degree_analysis = compute_node_degree_analysis(TN, data=True)
degree_analysis
[8]:
{'HTSB0': [255, 257],
 'BREU0': [504, 504],
 'JOUA1': [504, 504],
 'PLGA0': [917, 917],
 'CARA1': [518, 518],
 'TOUR0': [518, 518],
 'MAUB0': [1131, 1131],
 'GRBY0': [1838, 1845],
 'ECHM0': [2170, 2170],
 'MBAY0': [2170, 2170],
 'BASQ1': [839, 838],
 'SOUS0': [807, 807],
 'BALI1': [807, 807],
 'CCI0': [504, 504],
 'ARPO0': [709, 709],
 'FORU1': [504, 504],
 'BAB20': [504, 504],
 'ARTO0': [830, 830],
 'LBAR0': [830, 830],
 'LEMB0': [913, 913],
 'BRNM0': [1183, 1183],
 'MANG0': [710, 710],
 'LOUI0': [510, 510],
 'MOUR0': [510, 510],
 'CHSN0': [510, 510],
 'AGUI1': [510, 510],
 'EURM0': [510, 510],
 'AILL0': [1341, 1341],
 'SCHV0': [618, 618],
 'PALA0': [704, 704],
 'MBIA0': [288, 285],
 'CONT0': [698, 698],
 'SCHM0': [612, 612],
 'BASQ0': [1187, 1190],
 'GARR0': [252, 254],
 'GEND0': [393, 393],
 'FEMM0': [495, 495],
 'HDVT0': [495, 495],
 'CLAI0': [390, 390],
 'ECLL0': [390, 390],
 'PCAS0': [562, 562],
 'OCEA0': [632, 632],
 'COTE0': [399, 399],
 'CAMA0': [399, 399],
 'MTRS0': [613, 613],
 'CITA0': [613, 613],
 'PAUL0': [1146, 1146],
 'STLE0': [942, 942],
 'JDGR0': [490, 490],
 'HOPI0': [536, 536],
 'LYCE0': [539, 539],
 'MRRC0': [341, 353],
 'SAIN0': [199, 200],
 'OSTE0': [399, 399],
 'HARG0': [399, 399],
 'HABA0': [399, 399],
 'HOUR0': [399, 399],
 'ETIE0': [399, 399],
 'AVRI0': [399, 399],
 'CAM0': [400, 403],
 'HARA0': [473, 472],
 'LART0': [399, 399],
 'BURU0': [399, 399],
 'DESC0': [399, 399],
 'LAVG0': [399, 399],
 'MUSC0': [399, 399],
 'JAUR0': [603, 603],
 'BOUR0': [603, 603],
 'FERR0': [767, 767],
 'ALSA0': [767, 767],
 'LACH0': [411, 411],
 'MARO0': [411, 411],
 'VILL0': [413, 415],
 'BEYR0': [572, 572],
 'UNIO0': [409, 409],
 'COTO0': [399, 399],
 'LAVI0': [399, 399],
 'GLAC0': [399, 399],
 'AERO0': [504, 505],
 'PARM0': [392, 392],
 'VIAD0': [306, 306],
 'ABBA0': [92, 92],
 'IZAR0': [46, 44],
 'NEGR0': [1019, 1022],
 'MANG1': [199, 199],
 'STLE1': [208, 208],
 'BARB1': [72, 72],
 'REDU1': [975, 975],
 'ANDR0': [767, 767],
 'ARSE0': [767, 767],
 'GENI0': [564, 564],
 'LAUG0': [580, 580],
 'CASS0': [692, 692],
 'LOEB0': [547, 547],
 'CONS0': [547, 547],
 'CITE0': [547, 547],
 'DARR0': [547, 547],
 'VALL0': [334, 334],
 'POLO0': [334, 334],
 'GAUD0': [334, 334],
 'LAFO0': [334, 334],
 'DSBS0': [326, 326],
 'NUMA0': [326, 326],
 'FUTA0': [331, 331],
 'COUR0': [384, 384],
 'CHEN0': [550, 550],
 'BOIB0': [550, 550],
 'LOUS0': [332, 332],
 'GOCH0': [332, 332],
 'PECH1': [332, 332],
 'CINQ0': [545, 545],
 'GRCH0': [326, 326],
 'QATR0': [326, 326],
 'LARO0': [326, 326],
 'ESTA0': [326, 326],
 'MADE0': [326, 326],
 'CITS0': [437, 438],
 'EDOU1': [897, 898],
 'FOCH0': [439, 439],
 'JARD0': [874, 874],
 'FONT0': [331, 331],
 'MART0': [330, 327],
 'TAMA0': [326, 326],
 'MICH0': [326, 326],
 'SIMM0': [326, 326],
 'PETR0': [326, 326],
 'LARR0': [326, 326],
 'SOLE0': [326, 326],
 'LARU0': [326, 326],
 'FJAM0': [326, 326],
 'BOIS0': [502, 502],
 'ATAB0': [209, 209],
 'ZAIR0': [209, 209],
 'CHPT0': [209, 209],
 'MOUS1': [209, 209],
 'IRAT0': [133, 128],
 'LRLD0': [395, 395],
 'COUR1': [164, 164],
 'IKEA0': [285, 289],
 'ATUR0': [347, 348],
 'ZADI0': [288, 288],
 'MURG0': [146, 146],
 'CAST1': [296, 296],
 'DHAR1': [295, 295],
 'FHAR1': [295, 295],
 'AROT1': [295, 295],
 'OURO1': [295, 295],
 'DASB1': [292, 292],
 'PERL1': [292, 292],
 'QUIE1': [292, 292],
 'BELH0': [343, 344],
 'CHEA0': [344, 344],
 'MADU0': [344, 344],
 'CAMP0': [344, 344],
 'POYD0': [344, 344],
 'SABA1': [303, 303],
 'SABA0': [303, 303],
 'CANA0': [132, 132],
 'HAUS0': [132, 132],
 'BAHI1': [132, 132],
 'LBAB0': [132, 132],
 'EBAB0': [132, 132],
 'KBAB0': [132, 132],
 'MURG1': [146, 146],
 'SMOR0': [391, 391],
 'ESPA0': [391, 391],
 'ROND0': [317, 317],
 'PICH0': [215, 215],
 'CHIC0': [215, 215],
 'CAND0': [215, 215],
 'ARAG0': [215, 215],
 'MONT0': [210, 210],
 'LATA0': [280, 280],
 'PIQU0': [280, 280],
 'PITA0': [280, 280],
 'BART0': [283, 283],
 'BARJ0': [284, 284],
 'BOUG0': [307, 307],
 'MUTA0': [191, 191],
 'BRAM0': [191, 191],
 'DUPR0': [191, 191],
 'BERD0': [362, 362],
 'DELV0': [214, 214],
 'LAHA0': [214, 214],
 'AMA0': [106, 106],
 'BRID0': [214, 214],
 'CUZA0': [213, 213],
 'ARIT0': [213, 213],
 'PLAI0': [213, 213],
 'ARTE0': [382, 382],
 'MUSE0': [382, 382],
 'GALO0': [382, 382],
 'MNVA0': [601, 601],
 'MAIS0': [105, 105],
 'BIBL0': [105, 105],
 'PLAM0': [328, 328],
 'ENDA0': [325, 326],
 'BERN1': [323, 323],
 'AMAD0': [108, 108],
 'POLI0': [204, 204],
 'MROL0': [204, 204],
 'GUIL0': [201, 201],
 'PNEU0': [201, 201],
 'HVBC': [201, 201],
 'ANDB0': [140, 140],
 'PLAG0': [361, 362],
 'MRNL0': [544, 544],
 'FONL1': [373, 373],
 'SABL0': [373, 373],
 'PINS0': [373, 373],
 'DOUA1': [204, 204],
 'ABB0': [210, 209],
 'PORT0': [209, 209],
 'PIGN0': [209, 209],
 'COMP0': [209, 209],
 'BELL0': [209, 209],
 'STMI0': [204, 204],
 'CIGA0': [477, 475],
 'RANS0': [204, 204],
 'GOUG1': [204, 204],
 'ACAC0': [425, 425],
 'LAMO0': [209, 209],
 'MSSO0': [209, 209],
 'TIVO0': [209, 209],
 'HARD0': [205, 205],
 'AREN0': [205, 205],
 'CAPU0': [205, 205],
 'TRIB0': [205, 205],
 'GUST0': [204, 204],
 'TILO0': [204, 204],
 'GOME0': [204, 204],
 'CHAL0': [204, 204],
 'GRAN0': [204, 204],
 'CCFR0': [204, 204],
 'FORT0': [208, 208],
 'TROU0': [208, 208],
 'BAYA0': [208, 208],
 'HAME0': [208, 208],
 'ARRO0': [208, 208],
 'LAPI0': [208, 208],
 'SEQU0': [207, 205],
 'EHPA0': [208, 208],
 'STET0': [208, 208],
 'HNAV0': [208, 208],
 'DEYR0': [208, 208],
 'HTSB1': [158, 166],
 'VAGU0': [175, 175],
 'STEM0': [176, 177],
 'LECL1': [175, 175],
 'PAQU0': [169, 169],
 'MEGN1': [169, 169],
 'PRIM1': [169, 169],
 'DBAR0': [169, 169],
 'ADUF0': [169, 169],
 'MELV0': [221, 221],
 'MAIG0': [221, 221],
 'SUTA0': [245, 245],
 'BRDE0': [245, 245],
 'CDSU0': [91, 92],
 'HOND0': [90, 90],
 'CAMN0': [90, 90],
 'JUVI0': [90, 90],
 'TRCR0': [84, 82],
 'CMPT0': [122, 122],
 'DONR0': [283, 283],
 'PETI0': [310, 310],
 'FLOQ0': [218, 218],
 'KLEB0': [218, 218],
 'SABO0': [218, 218],
 'TAMM0': [218, 218],
 'LABH0': [218, 218],
 'RANQ1': [218, 218],
 'PARM1': [218, 218],
 '7PUI0': [218, 218],
 'HOUN0': [218, 218],
 'HBRD0': [218, 218],
 'ERMI0': [218, 218],
 'TRLA0': [218, 218],
 'CNTA0': [222, 221],
 'FRGE0': [225, 225],
 'MSLT0': [225, 225],
 'CHOI0': [223, 223],
 'ELHO0': [223, 223],
 'LRBT0': [218, 218],
 'BAB30': [220, 219],
 'PSOL0': [221, 221],
 'BELM0': [221, 221],
 'BUTT0': [221, 221],
 'RENA0': [221, 221],
 'CAMI0': [221, 221],
 'FINE0': [392, 392],
 'LESP0': [392, 392],
 'MONB0': [392, 392],
 'CORD0': [224, 223],
 'RENE0': [226, 226],
 'BLAN0': [226, 226],
 'PIBA0': [226, 226],
 'BECA0': [226, 226],
 'REDO0': [64, 64],
 'LAZA1': [93, 93],
 'NORO0': [264, 264],
 'PTPL0': [264, 264],
 'BRIS0': [264, 264],
 'SEMA0': [261, 261],
 'BARR0': [216, 216],
 'LORE0': [172, 171],
 'LABO0': [171, 171],
 'POUT0': [171, 171],
 'HARI0': [171, 171],
 'FAL0': [173, 174],
 'CHAU0': [171, 171],
 'BARC0': [171, 171],
 'HARC0': [171, 171],
 'BTZC0': [171, 171],
 'BOUL0': [294, 293],
 'TMAR0': [245, 245],
 'MILA0': [245, 245],
 'RIVA0': [245, 245],
 'BORD0': [315, 315],
 'SLAS0': [315, 315],
 'HELI0': [245, 245],
 'CHAM0': [122, 122],
 'JARD1': [122, 122],
 'MADE1': [251, 251],
 'TRIG0': [171, 171],
 'GOLB0': [171, 171],
 'COPE0': [171, 171],
 'MERG0': [171, 171],
 'FALA0': [171, 171],
 'CHAP0': [171, 171],
 'CORS0': [171, 171],
 'MADR0': [171, 171],
 'GOLF0': [171, 171],
 'DUNE0': [171, 171],
 'CAVA0': [171, 171],
 'CHIB0': [171, 171],
 'LAZA0': [176, 176],
 'FAIS0': [176, 176],
 'OROK0': [176, 176],
 'TUC0': [176, 176],
 'EMPE0': [176, 176],
 'JAUF0': [176, 176],
 'DASSA0': [52, 52],
 'JORL0': [171, 171],
 'STDE0': [9, 9],
 'FOJT0': [0, 23],
 'CRZA0': [48, 49],
 'FORG0': [158, 158],
 'PTRN0': [155, 155],
 'INDU0': [155, 155],
 'TURB0': [155, 155],
 'ERAB0': [155, 155],
 'CCIA0': [107, 109],
 'WALO0': [108, 108],
 'AYGA0': [102, 102],
 'BRRT0': [106, 106],
 'KOBE0': [111, 111],
 'DAUP0': [111, 111],
 'LACR0': [111, 111],
 'PISS0': [102, 102],
 'DURR0': [102, 102],
 'PALI0': [102, 102],
 'NOVE0': [102, 102],
 'CANT0': [102, 102],
 'TREY0': [102, 102],
 'PLAT0': [114, 114],
 'CSTB0': [111, 111],
 'LECT0': [111, 111],
 'MING0': [111, 111],
 'TCAS0': [61, 59],
 'FOJE0': [24, 0],
 'AYGS0': [74, 74],
 'GUYE0': [74, 74],
 'BIGO0': [74, 74],
 'PTAR0': [74, 74],
 'GARG0': [70, 70],
 'MONM0': [70, 70],
 'ESBO0': [75, 75],
 'VIGO0': [75, 75],
 'PINE0': [75, 75],
 'MAUR0': [75, 75],
 'VIGN0': [75, 75],
 'NOST1': [70, 70],
 'HLMH0': [70, 70],
 'MORA0': [70, 70],
 'MATI0': [70, 70],
 'BLAC0': [35, 35],
 'POLI1': [37, 37],
 'MROL1': [35, 35],
 'BCRG0': [79, 79],
 'PAVE0': [79, 79],
 'MARH0': [79, 79],
 'ETAP0': [79, 79],
 'CHAI0': [74, 74],
 'BIDE0': [74, 74],
 'ERRE0': [74, 74],
 'BIMA0': [100, 100],
 'CRRI0': [100, 100],
 'BIDP0': [100, 100],
 'BIDH0': [37, 37],
 'MBID0': [26, 26],
 'ERRE1': [26, 26],
 'ECOL0': [52, 52],
 'CHIR0': [52, 52],
 'URON0': [52, 52],
 'ITZU0': [57, 57],
 'GUEH0': [31, 31],
 'BERR0': [62, 62],
 'HIRA0': [57, 57],
 'JEGU0': [57, 57],
 'RUIS0': [57, 57],
 'JBAS1': [57, 57],
 'ZABA0': [16, 16],
 'JBAS0': [57, 57],
 'PEMA0': [57, 57],
 'ABBA1': [55, 55],
 'CGPM0': [52, 52],
 'ETCP0': [52, 52],
 'URUB0': [52, 52],
 'CARI0': [52, 52],
 'PYRA0': [52, 52],
 'BAST0': [52, 52],
 'PITO0': [52, 52],
 'TECH0': [140, 140],
 'EDF0': [152, 152],
 'PANO0': [152, 152],
 'OYHA0': [26, 26],
 'ATHE0': [26, 26],
 'EMBR0': [26, 26],
 'PLCT0': [26, 26],
 'LNTQ0': [92, 92],
 'NPLN0': [92, 92],
 'RESP0': [92, 92],
 'GARI0': [92, 92],
 'SLIN0': [92, 92],
 'MPOR0': [92, 92],
 'HRGN0': [92, 92],
 'BRDA0': [92, 92],
 'ESCT0': [92, 92],
 'AGUE0': [92, 92],
 'MBOU0': [92, 92],
 'LRHU0': [92, 92],
 'MVIL0': [92, 92],
 'BEDE0': [92, 92],
 'MBUR0': [27, 24],
 'VEGL0': [51, 51],
 'VECL0': [51, 51],
 'VBOU0': [51, 51],
 'ARKI0': [51, 51],
 'QBAS0': [51, 51],
 'HILL0': [54, 52],
 'EMAT0': [51, 51],
 'DOCK0': [76, 76],
 'HDEA0': [76, 76],
 'LTXP0': [76, 76],
 'KURU0': [76, 76],
 'ETXE0': [152, 152],
 'LTAS0': [152, 152],
 'ABOU0': [78, 77],
 'MBIS0': [79, 79],
 'GNRL0': [76, 76],
 'LRDT0': [79, 79],
 'AXER0': [79, 79],
 'XOKO0': [79, 79],
 'AXRI0': [76, 76],
 'HRR0': [39, 39],
 'ERKT0': [79, 79],
 'PERR0': [76, 76],
 'BBOU0': [76, 76],
 'MEND0': [76, 76],
 'HRRI0': [40, 40],
 'GONI0': [58, 48],
 'LCRT0': [106, 106],
 'MSTM0': [106, 106],
 'PJRA0': [106, 106],
 'QNEU0': [106, 106],
 'BAGA0': [106, 106],
 'LESC0': [106, 106],
 'ZAAM0': [106, 106],
 'BIAR0': [106, 106],
 'PESP0': [25, 25],
 'DSMA0': [58, 50],
 'STRO0': [108, 108],
 'GRON0': [108, 108],
 'STRD0': [108, 108],
 'DUMO0': [108, 108],
 'BERTR0': [108, 108],
 'OFTS0': [108, 108],
 'MOND0': [108, 108],
 'GARR1': [50, 50],
 'PTJE0': [111, 111],
 'TPLA0': [117, 114],
 'LAHO0': [120, 120],
 'HUGE0': [120, 120],
 'MEMO0': [111, 111],
 'CHPB0': [113, 113],
 'SOEU0': [113, 113],
 'BARS0': [113, 113],
 'GREN0': [116, 116],
 'LESS0': [116, 116],
 'BAND0': [61, 61],
 'DOUA0': [6, 6],
 'JAME0': [5, 5],
 'MTVL0': [6, 6],
 'PAVC0': [3, 3],
 'AJON0': [3, 3],
 'PROM0': [3, 3],
 'EMM0': [2, 1],
 'BIARR0': [3, 3],
 'MARG0': [3, 3],
 'MAOU0': [3, 3],
 'BANI1': [12, 12],
 'BAL0': [12, 12],
 'WALO1': [3, 5],
 'CHANT0': [5, 5],
 'PRAI1': [5, 5],
 'ARTG1': [5, 5],
 'COSE0': [5, 5],
 'LVIG0': [14, 14],
 'LASS0': [14, 14],
 'LBDE0': [14, 14],
 'PETC0': [5, 5],
 'CASTA0': [5, 5],
 'GLIZ0': [5, 5],
 'GRDJ0': [6, 3],
 'MAYE0': [9, 9],
 'OCEA1': [9, 9],
 'BELA0': [6, 5],
 'OURT0': [7, 7],
 'HAXU0': [7, 7],
 'MISP0': [7, 7],
 'LOST0': [7, 7],
 'MAST0': [7, 7],
 'AMLU0': [7, 7],
 'OIAR0': [7, 7],
 'LATX0': [1, 1],
 'LATX1': [3, 3],
 'PAUL1': [1, 1],
 'TIVO1': [1, 1],
 'CANR0': [3, 3],
 'BRTE0': [3, 3],
 'MAKI0': [3, 3],
 'RLMG0': [3, 3],
 'BRAU0': [3, 3],
 'LHON0': [140, 140],
 'OSHE0': [140, 140],
 'FOUR0': [140, 140],
 'SERR0': [140, 140],
 'PARK0': [140, 140],
 'FRIA1': [140, 140],
 'VRDU0': [156, 156],
 'HDVB0': [116, 116],
 'BEPK0': [116, 116],
 'GBTZ0': [116, 116],
 'HELI1': [186, 186],
 'PMAZ0': [70, 70],
 'CHLE0': [70, 70],
 'PRAD0': [70, 70],
 'HRIS0': [70, 70],
 'CRXB0': [116, 116],
 'HGOB0': [116, 116],
 'PHAL0': [116, 116],
 'JBAR0': [70, 70],
 'GARD0': [70, 70],
 'STCH0': [86, 86],
 'JUIN0': [86, 86],
 'LVGNT0': [46, 46],
 'ALSC0': [46, 46],
 'IMPE0': [46, 46],
 'REGI0': [92, 92],
 'PHAR0': [46, 46],
 'SARA0': [46, 46],
 'COLI0': [86, 86],
 'PELL0': [172, 172],
 'FRSF0': [92, 92],
 'FLPK0': [92, 92],
 'CHEL0': [46, 46],
 'CLMA0': [46, 46],
 'BELY0': [46, 46],
 'GRAM0': [46, 46],
 'PSTR2': [46, 46],
 'MIGR0': [46, 46],
 'HIPP0': [46, 46],
 'PSTR1': [46, 46],
 'VOLT0': [46, 46],
 'CHEL1': [46, 46],
 'CLAG0': [40, 40],
 'MAYO0': [40, 40],
 'ETDO0': [80, 80],
 'FERD0': [40, 40],
 'MIM0': [40, 40],
 'VERL0': [40, 40],
 'CHFO0': [114, 114],
 'GLCS0': [228, 228],
 'PDB0': [392, 392],
 'CVIE0': [196, 196],
 'MAIR0': [392, 392],
 'PMAY0': [114, 114],
 'MRGO0': [114, 114],
 'MSES0': [228, 228],
 'EGST0': [228, 228],
 'GLAI0': [114, 114],
 'LABT0': [196, 196],
 'QARE0': [82, 82],
 'DUBQ0': [82, 82],
 'FCH0': [164, 164],
 'QSTE0': [82, 82],
 'STVC0': [82, 82],
 'ARG0': [82, 82],
 'JDAM0': [82, 82],
 'MARQ0': [82, 82],
 'FLOR0': [66, 66],
 'FOLL0': [132, 132]}
[9]:
plot_distribution_degree_analysis(TN)

Centrality analysis#

[10]:
plot_centrality_analysis(TN)
[11]:
map_centrality_analysis(TN)

Robustness analysis#

[12]:
plot_robustness_analysis(TN, precision=0.01)
Processing attack::   0%|          | 0/5 [00:00<?, ?it/s]
  0%|          | 0/613 [00:00<?, ?it/s]
 10%|█         | 62/613 [00:00<00:00, 612.18it/s]
 22%|██▏       | 136/613 [00:00<00:00, 681.71it/s]
 34%|███▍      | 210/613 [00:00<00:00, 707.80it/s]
 48%|████▊     | 293/613 [00:00<00:00, 754.63it/s]
 61%|██████    | 374/613 [00:00<00:00, 771.05it/s]
 74%|███████▍  | 455/613 [00:00<00:00, 780.46it/s]
 87%|████████▋ | 534/613 [00:00<00:00, 752.37it/s]
100%|██████████| 613/613 [00:00<00:00, 719.53it/s]

  0%|          | 0/87 [00:00<?, ?it/s]

  0%|          | 0/606 [00:00<?, ?it/s]

 17%|█▋        | 101/606 [00:00<00:00, 1009.51it/s]

 33%|███▎      | 202/606 [00:00<00:00, 914.92it/s]

 49%|████▊     | 295/606 [00:00<00:00, 814.56it/s]

 63%|██████▎   | 383/606 [00:00<00:00, 837.52it/s]

 77%|███████▋  | 468/606 [00:00<00:00, 836.28it/s]

100%|██████████| 606/606 [00:00<00:00, 860.96it/s]

  1%|          | 1/87 [00:01<01:59,  1.39s/it]

  0%|          | 0/599 [00:00<?, ?it/s]

 19%|█▉        | 114/599 [00:00<00:00, 1132.44it/s]

 38%|███▊      | 228/599 [00:00<00:00, 1130.13it/s]

 57%|█████▋    | 342/599 [00:00<00:00, 1062.69it/s]

 75%|███████▍  | 449/599 [00:00<00:00, 1021.40it/s]

100%|██████████| 599/599 [00:00<00:00, 1020.91it/s]

  2%|▏         | 2/87 [00:02<01:50,  1.30s/it]

  0%|          | 0/592 [00:00<?, ?it/s]

 18%|█▊        | 108/592 [00:00<00:00, 1072.37it/s]

 37%|███▋      | 219/592 [00:00<00:00, 1091.17it/s]

 56%|█████▌    | 330/592 [00:00<00:00, 1097.24it/s]

 74%|███████▍  | 440/592 [00:00<00:00, 1077.42it/s]

100%|██████████| 592/592 [00:00<00:00, 1068.28it/s]

  3%|▎         | 3/87 [00:03<01:43,  1.23s/it]

  0%|          | 0/585 [00:00<?, ?it/s]

 20%|██        | 117/585 [00:00<00:00, 1163.74it/s]

 40%|████      | 234/585 [00:00<00:00, 1151.92it/s]

 60%|█████▉    | 350/585 [00:00<00:00, 1053.37it/s]

 78%|███████▊  | 457/585 [00:00<00:00, 1007.78it/s]

100%|██████████| 585/585 [00:00<00:00, 1041.68it/s]

  5%|▍         | 4/87 [00:04<01:38,  1.19s/it]

  0%|          | 0/578 [00:00<?, ?it/s]

 21%|██        | 119/578 [00:00<00:00, 1182.73it/s]

 41%|████      | 238/578 [00:00<00:00, 1086.75it/s]

 62%|██████▏   | 358/578 [00:00<00:00, 1131.92it/s]

100%|██████████| 578/578 [00:00<00:00, 1131.78it/s]

  6%|▌         | 5/87 [00:05<01:34,  1.15s/it]

  0%|          | 0/571 [00:00<?, ?it/s]

 18%|█▊        | 105/571 [00:00<00:00, 1048.72it/s]

 37%|███▋      | 210/571 [00:00<00:00, 1010.92it/s]

 55%|█████▍    | 312/571 [00:00<00:00, 978.71it/s]

 72%|███████▏  | 410/571 [00:00<00:00, 937.07it/s]

100%|██████████| 571/571 [00:00<00:00, 981.78it/s]

  7%|▋         | 6/87 [00:07<01:31,  1.13s/it]

  0%|          | 0/564 [00:00<?, ?it/s]

 21%|██        | 117/564 [00:00<00:00, 1161.47it/s]

 42%|████▏     | 235/564 [00:00<00:00, 1170.93it/s]

 63%|██████▎   | 353/564 [00:00<00:00, 1158.06it/s]

100%|██████████| 564/564 [00:00<00:00, 1123.98it/s]

  8%|▊         | 7/87 [00:08<01:27,  1.09s/it]

  0%|          | 0/557 [00:00<?, ?it/s]

 23%|██▎       | 127/557 [00:00<00:00, 1267.68it/s]

 46%|████▌     | 254/557 [00:00<00:00, 1246.47it/s]

 68%|██████▊   | 379/557 [00:00<00:00, 1118.24it/s]

100%|██████████| 557/557 [00:00<00:00, 1104.65it/s]

  9%|▉         | 8/87 [00:09<01:24,  1.07s/it]

  0%|          | 0/550 [00:00<?, ?it/s]

 22%|██▏       | 119/550 [00:00<00:00, 1176.07it/s]

 43%|████▎     | 237/550 [00:00<00:00, 1089.95it/s]

 64%|██████▎   | 350/550 [00:00<00:00, 1106.84it/s]

100%|██████████| 550/550 [00:00<00:00, 1175.72it/s]

 10%|█         | 9/87 [00:10<01:20,  1.03s/it]

  0%|          | 0/543 [00:00<?, ?it/s]

 24%|██▎       | 128/543 [00:00<00:00, 1276.88it/s]

 47%|████▋     | 256/543 [00:00<00:00, 1253.51it/s]

100%|██████████| 543/543 [00:00<00:00, 1358.72it/s]

 11%|█▏        | 10/87 [00:10<01:14,  1.04it/s]

  0%|          | 0/536 [00:00<?, ?it/s]

 21%|██        | 110/536 [00:00<00:00, 1099.11it/s]

 44%|████▎     | 234/536 [00:00<00:00, 1179.82it/s]

 67%|██████▋   | 358/536 [00:00<00:00, 1205.36it/s]

100%|██████████| 536/536 [00:00<00:00, 1177.40it/s]

 13%|█▎        | 11/87 [00:11<01:10,  1.08it/s]

  0%|          | 0/529 [00:00<?, ?it/s]

 19%|█▉        | 102/529 [00:00<00:00, 1018.69it/s]

 42%|████▏     | 221/529 [00:00<00:00, 1116.69it/s]

 68%|██████▊   | 359/529 [00:00<00:00, 1235.42it/s]

100%|██████████| 529/529 [00:00<00:00, 1303.39it/s]

 14%|█▍        | 12/87 [00:12<01:08,  1.10it/s]

  0%|          | 0/522 [00:00<?, ?it/s]

 30%|███       | 158/522 [00:00<00:00, 1570.83it/s]

 61%|██████    | 316/522 [00:00<00:00, 1356.33it/s]

100%|██████████| 522/522 [00:00<00:00, 1297.20it/s]

 15%|█▍        | 13/87 [00:13<01:03,  1.16it/s]

  0%|          | 0/515 [00:00<?, ?it/s]

 26%|██▌       | 135/515 [00:00<00:00, 1348.10it/s]

 57%|█████▋    | 295/515 [00:00<00:00, 1495.82it/s]

100%|██████████| 515/515 [00:00<00:00, 1674.51it/s]

 16%|█▌        | 14/87 [00:13<00:56,  1.28it/s]

  0%|          | 0/508 [00:00<?, ?it/s]

 36%|███▌      | 182/508 [00:00<00:00, 1814.92it/s]

100%|██████████| 508/508 [00:00<00:00, 1943.46it/s]

 17%|█▋        | 15/87 [00:14<00:50,  1.41it/s]

  0%|          | 0/501 [00:00<?, ?it/s]

 43%|████▎     | 213/501 [00:00<00:00, 2126.59it/s]

100%|██████████| 501/501 [00:00<00:00, 2198.24it/s]

 18%|█▊        | 16/87 [00:14<00:45,  1.56it/s]

  0%|          | 0/494 [00:00<?, ?it/s]

 43%|████▎     | 213/494 [00:00<00:00, 2126.81it/s]

100%|██████████| 494/494 [00:00<00:00, 2253.18it/s]

 20%|█▉        | 17/87 [00:15<00:41,  1.68it/s]

  0%|          | 0/487 [00:00<?, ?it/s]

100%|██████████| 487/487 [00:00<00:00, 3401.30it/s]

 21%|██        | 18/87 [00:15<00:34,  1.98it/s]

  0%|          | 0/480 [00:00<?, ?it/s]

100%|██████████| 480/480 [00:00<00:00, 3780.23it/s]

 22%|██▏       | 19/87 [00:16<00:29,  2.30it/s]

  0%|          | 0/473 [00:00<?, ?it/s]

100%|██████████| 473/473 [00:00<00:00, 4330.94it/s]

 23%|██▎       | 20/87 [00:16<00:25,  2.67it/s]

100%|██████████| 466/466 [00:00<00:00, 4852.67it/s]

 24%|██▍       | 21/87 [00:16<00:21,  3.09it/s]

100%|██████████| 459/459 [00:00<00:00, 5439.56it/s]

 25%|██▌       | 22/87 [00:16<00:18,  3.53it/s]

  0%|          | 0/452 [00:00<?, ?it/s]

100%|██████████| 452/452 [00:00<00:00, 4315.47it/s]

 26%|██▋       | 23/87 [00:16<00:16,  3.90it/s]

100%|██████████| 445/445 [00:00<00:00, 5692.92it/s]

 28%|██▊       | 24/87 [00:17<00:14,  4.34it/s]

100%|██████████| 438/438 [00:00<00:00, 8551.99it/s]

 29%|██▊       | 25/87 [00:17<00:11,  5.18it/s]

100%|██████████| 431/431 [00:00<00:00, 10883.41it/s]


100%|██████████| 424/424 [00:00<00:00, 15545.05it/s]

 31%|███       | 27/87 [00:17<00:08,  7.04it/s]

100%|██████████| 417/417 [00:00<00:00, 20778.44it/s]


100%|██████████| 410/410 [00:00<00:00, 22580.22it/s]

 33%|███▎      | 29/87 [00:17<00:06,  9.40it/s]

100%|██████████| 403/403 [00:00<00:00, 19930.49it/s]


100%|██████████| 396/396 [00:00<00:00, 22202.47it/s]

 36%|███▌      | 31/87 [00:17<00:04, 11.53it/s]

100%|██████████| 389/389 [00:00<00:00, 26402.32it/s]


100%|██████████| 382/382 [00:00<00:00, 36101.58it/s]


100%|██████████| 375/375 [00:00<00:00, 36195.24it/s]


100%|██████████| 368/368 [00:00<00:00, 24977.81it/s]

 40%|████      | 35/87 [00:17<00:03, 17.18it/s]

100%|██████████| 361/361 [00:00<00:00, 39484.29it/s]


100%|██████████| 354/354 [00:00<00:00, 25940.52it/s]


100%|██████████| 347/347 [00:00<00:00, 45409.61it/s]


100%|██████████| 340/340 [00:00<00:00, 39168.96it/s]

 45%|████▍     | 39/87 [00:17<00:02, 22.02it/s]

100%|██████████| 333/333 [00:00<00:00, 49029.50it/s]


100%|██████████| 326/326 [00:00<00:00, 50687.39it/s]


100%|██████████| 319/319 [00:00<00:00, 36123.63it/s]


100%|██████████| 312/312 [00:00<00:00, 53890.49it/s]


100%|██████████| 305/305 [00:00<00:00, 38280.65it/s]

 51%|█████     | 44/87 [00:17<00:01, 28.50it/s]

100%|██████████| 298/298 [00:00<00:00, 61057.23it/s]


100%|██████████| 291/291 [00:00<00:00, 36097.91it/s]


100%|██████████| 284/284 [00:00<00:00, 64038.62it/s]


100%|██████████| 277/277 [00:00<00:00, 66821.32it/s]


100%|██████████| 270/270 [00:00<00:00, 64601.37it/s]


100%|██████████| 263/263 [00:00<00:00, 79634.85it/s]

 57%|█████▋    | 50/87 [00:17<00:01, 36.09it/s]

100%|██████████| 256/256 [00:00<00:00, 67543.68it/s]


100%|██████████| 249/249 [00:00<00:00, 79742.06it/s]


100%|██████████| 242/242 [00:00<00:00, 86820.77it/s]


100%|██████████| 235/235 [00:00<00:00, 58361.15it/s]


100%|██████████| 228/228 [00:00<00:00, 73578.62it/s]


100%|██████████| 221/221 [00:00<00:00, 89880.85it/s]


100%|██████████| 214/214 [00:00<00:00, 82490.68it/s]


100%|██████████| 207/207 [00:00<00:00, 91982.30it/s]

 67%|██████▋   | 58/87 [00:18<00:00, 46.51it/s]

100%|██████████| 200/200 [00:00<00:00, 60185.16it/s]


100%|██████████| 193/193 [00:00<00:00, 94700.59it/s]


100%|██████████| 186/186 [00:00<00:00, 47788.09it/s]


100%|██████████| 179/179 [00:00<00:00, 89410.55it/s]


100%|██████████| 172/172 [00:00<00:00, 62020.31it/s]


100%|██████████| 165/165 [00:00<00:00, 62364.62it/s]


100%|██████████| 158/158 [00:00<00:00, 57872.68it/s]


100%|██████████| 151/151 [00:00<00:00, 57639.23it/s]

 76%|███████▌  | 66/87 [00:18<00:00, 55.30it/s]

100%|██████████| 144/144 [00:00<00:00, 93466.38it/s]


100%|██████████| 137/137 [00:00<00:00, 98427.48it/s]


100%|██████████| 130/130 [00:00<00:00, 87718.71it/s]


100%|██████████| 123/123 [00:00<00:00, 100038.66it/s]


100%|██████████| 116/116 [00:00<00:00, 75855.83it/s]


100%|██████████| 109/109 [00:00<00:00, 65423.46it/s]


100%|██████████| 102/102 [00:00<00:00, 63550.06it/s]


100%|██████████| 95/95 [00:00<00:00, 59712.11it/s]


100%|██████████| 88/88 [00:00<00:00, 62580.32it/s]


100%|██████████| 81/81 [00:00<00:00, 63824.65it/s]

 87%|████████▋ | 76/87 [00:18<00:00, 67.45it/s]

100%|██████████| 74/74 [00:00<00:00, 107770.31it/s]


100%|██████████| 67/67 [00:00<00:00, 63622.00it/s]


100%|██████████| 60/60 [00:00<00:00, 65536.00it/s]


100%|██████████| 53/53 [00:00<00:00, 92740.14it/s]


100%|██████████| 46/46 [00:00<00:00, 95989.05it/s]


100%|██████████| 39/39 [00:00<00:00, 54453.35it/s]


100%|██████████| 32/32 [00:00<00:00, 80177.85it/s]


100%|██████████| 25/25 [00:00<00:00, 74631.74it/s]


100%|██████████| 18/18 [00:00<00:00, 42036.45it/s]


100%|██████████| 11/11 [00:00<00:00, 34125.25it/s]


100%|██████████| 4/4 [00:00<00:00, 15902.57it/s]
100%|██████████| 87/87 [00:18<00:00,  4.75it/s]
Processing attack::  20%|██        | 1/5 [00:20<01:20, 20.06s/it]
  0%|          | 0/613 [00:00<?, ?it/s]
 15%|█▍        | 91/613 [00:00<00:00, 903.07it/s]
 30%|██▉       | 182/613 [00:00<00:00, 811.80it/s]
 43%|████▎     | 264/613 [00:00<00:00, 763.89it/s]
 56%|█████▌    | 341/613 [00:00<00:00, 744.35it/s]
 70%|██████▉   | 428/613 [00:00<00:00, 784.84it/s]
 86%|████████▌ | 526/613 [00:00<00:00, 846.16it/s]
100%|██████████| 613/613 [00:00<00:00, 795.85it/s]

  0%|          | 0/87 [00:00<?, ?it/s]

  0%|          | 0/606 [00:00<?, ?it/s]

 17%|█▋        | 100/606 [00:00<00:00, 994.17it/s]

 33%|███▎      | 200/606 [00:00<00:00, 986.99it/s]

 49%|████▉     | 299/606 [00:00<00:00, 960.99it/s]

 65%|██████▌   | 396/606 [00:00<00:00, 944.65it/s]

 81%|████████  | 491/606 [00:00<00:00, 942.89it/s]

100%|██████████| 606/606 [00:00<00:00, 943.42it/s]

  1%|          | 1/87 [00:01<01:49,  1.27s/it]

  0%|          | 0/599 [00:00<?, ?it/s]

 23%|██▎       | 137/599 [00:00<00:00, 1360.18it/s]

 46%|████▌     | 274/599 [00:00<00:00, 1262.36it/s]

 70%|███████   | 420/599 [00:00<00:00, 1348.12it/s]

100%|██████████| 599/599 [00:00<00:00, 1286.85it/s]

  2%|▏         | 2/87 [00:02<01:30,  1.07s/it]

  0%|          | 0/592 [00:00<?, ?it/s]

 23%|██▎       | 134/592 [00:00<00:00, 1339.63it/s]

 45%|████▌     | 268/592 [00:00<00:00, 1314.84it/s]

100%|██████████| 592/592 [00:00<00:00, 1468.73it/s]

  3%|▎         | 3/87 [00:03<01:23,  1.01it/s]

  0%|          | 0/585 [00:00<?, ?it/s]

 28%|██▊       | 162/585 [00:00<00:00, 1613.67it/s]

 55%|█████▌    | 324/585 [00:00<00:00, 1437.61it/s]

100%|██████████| 585/585 [00:00<00:00, 1483.25it/s]

  5%|▍         | 4/87 [00:03<01:15,  1.10it/s]

  0%|          | 0/578 [00:00<?, ?it/s]

 31%|███       | 177/578 [00:00<00:00, 1758.93it/s]

 61%|██████    | 353/578 [00:00<00:00, 1701.55it/s]

100%|██████████| 578/578 [00:00<00:00, 1567.76it/s]

  6%|▌         | 5/87 [00:04<01:09,  1.18it/s]

  0%|          | 0/571 [00:00<?, ?it/s]

 29%|██▊       | 164/571 [00:00<00:00, 1636.35it/s]

 57%|█████▋    | 328/571 [00:00<00:00, 1581.00it/s]

100%|██████████| 571/571 [00:00<00:00, 1565.20it/s]

  7%|▋         | 6/87 [00:05<01:05,  1.23it/s]

  0%|          | 0/564 [00:00<?, ?it/s]

 26%|██▋       | 149/564 [00:00<00:00, 1486.86it/s]

 53%|█████▎    | 298/564 [00:00<00:00, 1473.35it/s]

100%|██████████| 564/564 [00:00<00:00, 1565.49it/s]

  8%|▊         | 7/87 [00:06<01:03,  1.26it/s]

  0%|          | 0/557 [00:00<?, ?it/s]

 27%|██▋       | 152/557 [00:00<00:00, 1513.72it/s]

 56%|█████▋    | 314/557 [00:00<00:00, 1575.93it/s]

100%|██████████| 557/557 [00:00<00:00, 1556.48it/s]

  9%|▉         | 8/87 [00:06<01:01,  1.28it/s]

  0%|          | 0/550 [00:00<?, ?it/s]

 30%|███       | 167/550 [00:00<00:00, 1669.14it/s]

100%|██████████| 550/550 [00:00<00:00, 1800.95it/s]

 10%|█         | 9/87 [00:07<00:56,  1.37it/s]

  0%|          | 0/543 [00:00<?, ?it/s]

 36%|███▌      | 193/543 [00:00<00:00, 1925.64it/s]

100%|██████████| 543/543 [00:00<00:00, 1780.98it/s]

 11%|█▏        | 10/87 [00:08<00:53,  1.44it/s]

  0%|          | 0/536 [00:00<?, ?it/s]

 38%|███▊      | 201/536 [00:00<00:00, 2003.05it/s]

100%|██████████| 536/536 [00:00<00:00, 1885.20it/s]

 13%|█▎        | 11/87 [00:08<00:50,  1.51it/s]

  0%|          | 0/529 [00:00<?, ?it/s]

 47%|████▋     | 251/529 [00:00<00:00, 2507.63it/s]

100%|██████████| 529/529 [00:00<00:00, 2464.83it/s]

 14%|█▍        | 12/87 [00:09<00:43,  1.71it/s]

  0%|          | 0/522 [00:00<?, ?it/s]

100%|██████████| 522/522 [00:00<00:00, 3477.44it/s]

 15%|█▍        | 13/87 [00:09<00:37,  1.98it/s]

  0%|          | 0/515 [00:00<?, ?it/s]

100%|██████████| 515/515 [00:00<00:00, 3535.49it/s]

 16%|█▌        | 14/87 [00:09<00:32,  2.23it/s]

  0%|          | 0/508 [00:00<?, ?it/s]

100%|██████████| 508/508 [00:00<00:00, 4717.14it/s]

 17%|█▋        | 15/87 [00:09<00:27,  2.64it/s]

  0%|          | 0/501 [00:00<?, ?it/s]

100%|██████████| 501/501 [00:00<00:00, 4465.39it/s]

 18%|█▊        | 16/87 [00:10<00:24,  2.95it/s]

100%|██████████| 494/494 [00:00<00:00, 5614.47it/s]

 20%|█▉        | 17/87 [00:10<00:20,  3.40it/s]

100%|██████████| 487/487 [00:00<00:00, 5631.02it/s]

 21%|██        | 18/87 [00:10<00:18,  3.80it/s]

100%|██████████| 480/480 [00:00<00:00, 5654.70it/s]

 22%|██▏       | 19/87 [00:10<00:16,  4.16it/s]

100%|██████████| 473/473 [00:00<00:00, 5936.34it/s]

 23%|██▎       | 20/87 [00:10<00:14,  4.58it/s]

100%|██████████| 466/466 [00:00<00:00, 5822.51it/s]

 24%|██▍       | 21/87 [00:11<00:13,  4.85it/s]

100%|██████████| 459/459 [00:00<00:00, 5209.02it/s]

 25%|██▌       | 22/87 [00:11<00:13,  4.93it/s]

100%|██████████| 452/452 [00:00<00:00, 5644.92it/s]

 26%|██▋       | 23/87 [00:11<00:12,  5.11it/s]

100%|██████████| 445/445 [00:00<00:00, 8368.82it/s]

 28%|██▊       | 24/87 [00:11<00:10,  5.80it/s]

  0%|          | 0/438 [00:00<?, ?it/s]

100%|██████████| 438/438 [00:00<00:00, 3696.57it/s]

 29%|██▊       | 25/87 [00:11<00:11,  5.23it/s]

  0%|          | 0/431 [00:00<?, ?it/s]

100%|██████████| 431/431 [00:00<00:00, 2873.50it/s]

 30%|██▉       | 26/87 [00:12<00:13,  4.61it/s]

  0%|          | 0/424 [00:00<?, ?it/s]

100%|██████████| 424/424 [00:00<00:00, 3856.61it/s]

 31%|███       | 27/87 [00:12<00:13,  4.45it/s]

  0%|          | 0/417 [00:00<?, ?it/s]

100%|██████████| 417/417 [00:00<00:00, 2215.82it/s]

 32%|███▏      | 28/87 [00:12<00:15,  3.91it/s]

  0%|          | 0/410 [00:00<?, ?it/s]

100%|██████████| 410/410 [00:00<00:00, 3561.16it/s]

 33%|███▎      | 29/87 [00:12<00:14,  3.94it/s]

  0%|          | 0/403 [00:00<?, ?it/s]

100%|██████████| 403/403 [00:00<00:00, 3626.59it/s]

 34%|███▍      | 30/87 [00:13<00:15,  3.78it/s]

100%|██████████| 396/396 [00:00<00:00, 8067.69it/s]

 36%|███▌      | 31/87 [00:13<00:12,  4.49it/s]

100%|██████████| 389/389 [00:00<00:00, 5476.02it/s]

 37%|███▋      | 32/87 [00:13<00:11,  4.97it/s]

100%|██████████| 382/382 [00:00<00:00, 7780.51it/s]

 38%|███▊      | 33/87 [00:13<00:09,  5.46it/s]

100%|██████████| 375/375 [00:00<00:00, 5459.85it/s]

 39%|███▉      | 34/87 [00:13<00:09,  5.53it/s]

100%|██████████| 368/368 [00:00<00:00, 8537.93it/s]

 40%|████      | 35/87 [00:13<00:08,  5.92it/s]

100%|██████████| 361/361 [00:00<00:00, 6967.57it/s]

 41%|████▏     | 36/87 [00:14<00:07,  6.67it/s]

100%|██████████| 354/354 [00:00<00:00, 4977.53it/s]

 43%|████▎     | 37/87 [00:14<00:07,  6.46it/s]

100%|██████████| 347/347 [00:00<00:00, 4055.65it/s]

 44%|████▎     | 38/87 [00:14<00:07,  6.33it/s]

100%|██████████| 340/340 [00:00<00:00, 6566.94it/s]

 45%|████▍     | 39/87 [00:14<00:07,  6.78it/s]

100%|██████████| 333/333 [00:00<00:00, 7029.03it/s]

 46%|████▌     | 40/87 [00:14<00:06,  6.98it/s]

100%|██████████| 326/326 [00:00<00:00, 4909.88it/s]

 47%|████▋     | 41/87 [00:14<00:07,  6.35it/s]

100%|██████████| 319/319 [00:00<00:00, 6268.13it/s]

 48%|████▊     | 42/87 [00:15<00:06,  6.46it/s]

100%|██████████| 312/312 [00:00<00:00, 6626.98it/s]

 49%|████▉     | 43/87 [00:15<00:06,  6.64it/s]

100%|██████████| 305/305 [00:00<00:00, 6892.84it/s]

 51%|█████     | 44/87 [00:15<00:06,  6.90it/s]

100%|██████████| 298/298 [00:00<00:00, 10298.11it/s]

 52%|█████▏    | 45/87 [00:15<00:05,  7.60it/s]

100%|██████████| 291/291 [00:00<00:00, 9985.70it/s]


100%|██████████| 284/284 [00:00<00:00, 10755.40it/s]

 54%|█████▍    | 47/87 [00:15<00:04,  9.47it/s]

100%|██████████| 277/277 [00:00<00:00, 10663.81it/s]


100%|██████████| 270/270 [00:00<00:00, 10171.21it/s]

 56%|█████▋    | 49/87 [00:15<00:03, 10.35it/s]

100%|██████████| 263/263 [00:00<00:00, 10481.38it/s]


100%|██████████| 256/256 [00:00<00:00, 10272.29it/s]

 59%|█████▊    | 51/87 [00:15<00:03, 10.74it/s]

100%|██████████| 249/249 [00:00<00:00, 12068.89it/s]


100%|██████████| 242/242 [00:00<00:00, 8693.01it/s]

 61%|██████    | 53/87 [00:15<00:02, 11.91it/s]

100%|██████████| 235/235 [00:00<00:00, 13182.05it/s]


100%|██████████| 228/228 [00:00<00:00, 13338.09it/s]

 63%|██████▎   | 55/87 [00:16<00:02, 13.56it/s]

100%|██████████| 221/221 [00:00<00:00, 13592.71it/s]


100%|██████████| 214/214 [00:00<00:00, 14943.50it/s]


100%|██████████| 207/207 [00:00<00:00, 15199.68it/s]

 67%|██████▋   | 58/87 [00:16<00:01, 16.24it/s]

100%|██████████| 200/200 [00:00<00:00, 9728.63it/s]


100%|██████████| 193/193 [00:00<00:00, 8430.10it/s]

 69%|██████▉   | 60/87 [00:16<00:01, 16.25it/s]

100%|██████████| 186/186 [00:00<00:00, 14401.71it/s]


100%|██████████| 179/179 [00:00<00:00, 20159.51it/s]


100%|██████████| 172/172 [00:00<00:00, 11481.00it/s]

 72%|███████▏  | 63/87 [00:16<00:01, 18.53it/s]

100%|██████████| 165/165 [00:00<00:00, 23072.52it/s]


100%|██████████| 158/158 [00:00<00:00, 16055.72it/s]


100%|██████████| 151/151 [00:00<00:00, 13500.02it/s]


100%|██████████| 144/144 [00:00<00:00, 18070.78it/s]

 77%|███████▋  | 67/87 [00:16<00:00, 22.65it/s]

100%|██████████| 137/137 [00:00<00:00, 22512.03it/s]


100%|██████████| 130/130 [00:00<00:00, 15178.56it/s]


100%|██████████| 123/123 [00:00<00:00, 17737.64it/s]


100%|██████████| 116/116 [00:00<00:00, 8847.29it/s]

 82%|████████▏ | 71/87 [00:16<00:00, 25.74it/s]

100%|██████████| 109/109 [00:00<00:00, 14156.34it/s]


100%|██████████| 102/102 [00:00<00:00, 13788.16it/s]


100%|██████████| 95/95 [00:00<00:00, 14821.41it/s]


100%|██████████| 88/88 [00:00<00:00, 14715.68it/s]

 86%|████████▌ | 75/87 [00:16<00:00, 28.81it/s]

100%|██████████| 81/81 [00:00<00:00, 14552.95it/s]


100%|██████████| 74/74 [00:00<00:00, 13401.49it/s]


100%|██████████| 67/67 [00:00<00:00, 13614.57it/s]


100%|██████████| 60/60 [00:00<00:00, 15339.40it/s]


100%|██████████| 53/53 [00:00<00:00, 17585.48it/s]

 92%|█████████▏| 80/87 [00:16<00:00, 34.34it/s]

100%|██████████| 46/46 [00:00<00:00, 14815.17it/s]


100%|██████████| 39/39 [00:00<00:00, 15043.03it/s]


100%|██████████| 32/32 [00:00<00:00, 18310.74it/s]


100%|██████████| 25/25 [00:00<00:00, 16077.52it/s]


100%|██████████| 18/18 [00:00<00:00, 21940.56it/s]


100%|██████████| 11/11 [00:00<00:00, 21300.71it/s]

 99%|█████████▉| 86/87 [00:17<00:00, 41.30it/s]

100%|██████████| 4/4 [00:00<00:00, 14181.92it/s]
100%|██████████| 87/87 [00:17<00:00,  5.11it/s]
Processing attack::  40%|████      | 2/5 [00:38<00:57, 19.18s/it]
  0%|          | 0/613 [00:00<?, ?it/s]
 18%|█▊        | 109/613 [00:00<00:00, 1089.04it/s]
 36%|███▌      | 218/613 [00:00<00:00, 1081.28it/s]
 53%|█████▎    | 327/613 [00:00<00:00, 1061.93it/s]
 71%|███████   | 434/613 [00:00<00:00, 1007.46it/s]
100%|██████████| 613/613 [00:00<00:00, 976.25it/s]

  0%|          | 0/87 [00:00<?, ?it/s]

  0%|          | 0/606 [00:00<?, ?it/s]

 18%|█▊        | 110/606 [00:00<00:00, 1098.06it/s]

 36%|███▋      | 220/606 [00:00<00:00, 1047.22it/s]

 54%|█████▎    | 325/606 [00:00<00:00, 973.42it/s]

 70%|██████▉   | 423/606 [00:00<00:00, 926.70it/s]

100%|██████████| 606/606 [00:00<00:00, 925.83it/s]

  1%|          | 1/87 [00:01<01:51,  1.30s/it]

  0%|          | 0/599 [00:00<?, ?it/s]

 28%|██▊       | 169/599 [00:00<00:00, 1689.28it/s]

 56%|█████▋    | 338/599 [00:00<00:00, 1457.67it/s]

100%|██████████| 599/599 [00:00<00:00, 1428.34it/s]

  2%|▏         | 2/87 [00:02<01:27,  1.03s/it]

  0%|          | 0/592 [00:00<?, ?it/s]

 22%|██▏       | 130/592 [00:00<00:00, 1290.13it/s]

 44%|████▍     | 260/592 [00:00<00:00, 1274.50it/s]

 66%|██████▌   | 391/592 [00:00<00:00, 1286.40it/s]

100%|██████████| 592/592 [00:00<00:00, 1256.23it/s]

  3%|▎         | 3/87 [00:03<01:22,  1.02it/s]

  0%|          | 0/585 [00:00<?, ?it/s]

 31%|███       | 180/585 [00:00<00:00, 1792.62it/s]

 62%|██████▏   | 360/585 [00:00<00:00, 1681.41it/s]

100%|██████████| 585/585 [00:00<00:00, 1621.97it/s]

  5%|▍         | 4/87 [00:03<01:14,  1.12it/s]

  0%|          | 0/578 [00:00<?, ?it/s]

 26%|██▌       | 148/578 [00:00<00:00, 1478.49it/s]

 51%|█████     | 296/578 [00:00<00:00, 1307.20it/s]

100%|██████████| 578/578 [00:00<00:00, 1488.36it/s]

  6%|▌         | 5/87 [00:04<01:10,  1.16it/s]

  0%|          | 0/571 [00:00<?, ?it/s]

 30%|██▉       | 169/571 [00:00<00:00, 1686.68it/s]

 59%|█████▉    | 338/571 [00:00<00:00, 1634.07it/s]

100%|██████████| 571/571 [00:00<00:00, 1603.90it/s]

  7%|▋         | 6/87 [00:05<01:05,  1.23it/s]

  0%|          | 0/564 [00:00<?, ?it/s]

 29%|██▉       | 165/564 [00:00<00:00, 1643.12it/s]

 59%|█████▊    | 330/564 [00:00<00:00, 1523.11it/s]

100%|██████████| 564/564 [00:00<00:00, 1516.70it/s]

  8%|▊         | 7/87 [00:06<01:03,  1.25it/s]

  0%|          | 0/557 [00:00<?, ?it/s]

 25%|██▌       | 140/557 [00:00<00:00, 1397.07it/s]

 50%|█████     | 280/557 [00:00<00:00, 1317.75it/s]

100%|██████████| 557/557 [00:00<00:00, 1527.99it/s]

  9%|▉         | 8/87 [00:06<01:01,  1.29it/s]

  0%|          | 0/550 [00:00<?, ?it/s]

 37%|███▋      | 206/550 [00:00<00:00, 2054.99it/s]

100%|██████████| 550/550 [00:00<00:00, 1933.37it/s]

 10%|█         | 9/87 [00:07<00:55,  1.40it/s]

  0%|          | 0/543 [00:00<?, ?it/s]

 36%|███▋      | 198/543 [00:00<00:00, 1971.77it/s]

100%|██████████| 543/543 [00:00<00:00, 1878.23it/s]

 11%|█▏        | 10/87 [00:08<00:52,  1.48it/s]

  0%|          | 0/536 [00:00<?, ?it/s]

 32%|███▏      | 174/536 [00:00<00:00, 1731.67it/s]

100%|██████████| 536/536 [00:00<00:00, 1810.84it/s]

 13%|█▎        | 11/87 [00:08<00:49,  1.52it/s]

  0%|          | 0/529 [00:00<?, ?it/s]

 40%|███▉      | 209/529 [00:00<00:00, 2078.91it/s]

100%|██████████| 529/529 [00:00<00:00, 2081.90it/s]

 14%|█▍        | 12/87 [00:09<00:46,  1.61it/s]

  0%|          | 0/522 [00:00<?, ?it/s]

100%|██████████| 522/522 [00:00<00:00, 3282.01it/s]

 15%|█▍        | 13/87 [00:09<00:39,  1.87it/s]

  0%|          | 0/515 [00:00<?, ?it/s]

100%|██████████| 515/515 [00:00<00:00, 3619.90it/s]

 16%|█▌        | 14/87 [00:09<00:34,  2.14it/s]

  0%|          | 0/508 [00:00<?, ?it/s]

100%|██████████| 508/508 [00:00<00:00, 4395.56it/s]

 17%|█▋        | 15/87 [00:10<00:28,  2.50it/s]

100%|██████████| 501/501 [00:00<00:00, 5213.04it/s]

 18%|█▊        | 16/87 [00:10<00:24,  2.89it/s]

100%|██████████| 494/494 [00:00<00:00, 5210.85it/s]

 20%|█▉        | 17/87 [00:10<00:21,  3.28it/s]

100%|██████████| 487/487 [00:00<00:00, 5177.54it/s]

 21%|██        | 18/87 [00:10<00:18,  3.69it/s]

100%|██████████| 480/480 [00:00<00:00, 5511.83it/s]

 22%|██▏       | 19/87 [00:10<00:16,  4.09it/s]

100%|██████████| 473/473 [00:00<00:00, 6810.08it/s]

 23%|██▎       | 20/87 [00:11<00:14,  4.63it/s]

100%|██████████| 466/466 [00:00<00:00, 5166.93it/s]

 24%|██▍       | 21/87 [00:11<00:13,  4.97it/s]

100%|██████████| 459/459 [00:00<00:00, 6217.28it/s]

 25%|██▌       | 22/87 [00:11<00:12,  5.19it/s]

100%|██████████| 452/452 [00:00<00:00, 5930.09it/s]

 26%|██▋       | 23/87 [00:11<00:11,  5.51it/s]

100%|██████████| 445/445 [00:00<00:00, 7810.82it/s]

 28%|██▊       | 24/87 [00:11<00:10,  5.98it/s]

100%|██████████| 438/438 [00:00<00:00, 7147.24it/s]

 29%|██▊       | 25/87 [00:11<00:09,  6.42it/s]

100%|██████████| 431/431 [00:00<00:00, 8264.17it/s]

 30%|██▉       | 26/87 [00:11<00:08,  6.90it/s]

100%|██████████| 424/424 [00:00<00:00, 8498.93it/s]

 31%|███       | 27/87 [00:12<00:08,  7.16it/s]

100%|██████████| 417/417 [00:00<00:00, 8498.46it/s]

 32%|███▏      | 28/87 [00:12<00:07,  7.52it/s]

100%|██████████| 410/410 [00:00<00:00, 6979.22it/s]

 33%|███▎      | 29/87 [00:12<00:07,  7.54it/s]

100%|██████████| 403/403 [00:00<00:00, 10413.02it/s]


100%|██████████| 396/396 [00:00<00:00, 8443.88it/s]

 36%|███▌      | 31/87 [00:12<00:06,  8.92it/s]

100%|██████████| 389/389 [00:00<00:00, 10458.27it/s]


100%|██████████| 382/382 [00:00<00:00, 12417.55it/s]

 38%|███▊      | 33/87 [00:12<00:05,  9.94it/s]

100%|██████████| 375/375 [00:00<00:00, 13417.82it/s]


100%|██████████| 368/368 [00:00<00:00, 13304.35it/s]

 40%|████      | 35/87 [00:12<00:04, 11.40it/s]

100%|██████████| 361/361 [00:00<00:00, 13563.95it/s]


100%|██████████| 354/354 [00:00<00:00, 13946.08it/s]

 43%|████▎     | 37/87 [00:12<00:03, 12.61it/s]

100%|██████████| 347/347 [00:00<00:00, 13497.39it/s]


100%|██████████| 340/340 [00:00<00:00, 10306.76it/s]

 45%|████▍     | 39/87 [00:12<00:03, 13.55it/s]

100%|██████████| 333/333 [00:00<00:00, 12494.55it/s]


100%|██████████| 326/326 [00:00<00:00, 13778.98it/s]

 47%|████▋     | 41/87 [00:13<00:03, 14.63it/s]

100%|██████████| 319/319 [00:00<00:00, 9625.50it/s]


100%|██████████| 312/312 [00:00<00:00, 11440.51it/s]

 49%|████▉     | 43/87 [00:13<00:02, 14.90it/s]

100%|██████████| 305/305 [00:00<00:00, 11534.14it/s]


100%|██████████| 298/298 [00:00<00:00, 18065.31it/s]

 52%|█████▏    | 45/87 [00:13<00:02, 16.04it/s]

100%|██████████| 291/291 [00:00<00:00, 22613.11it/s]


100%|██████████| 284/284 [00:00<00:00, 24710.25it/s]


100%|██████████| 277/277 [00:00<00:00, 25041.43it/s]

 55%|█████▌    | 48/87 [00:13<00:01, 19.65it/s]

100%|██████████| 270/270 [00:00<00:00, 23130.83it/s]


100%|██████████| 263/263 [00:00<00:00, 21202.08it/s]


100%|██████████| 256/256 [00:00<00:00, 16584.17it/s]


100%|██████████| 249/249 [00:00<00:00, 22821.03it/s]

 60%|█████▉    | 52/87 [00:13<00:01, 23.96it/s]

100%|██████████| 242/242 [00:00<00:00, 26619.33it/s]


100%|██████████| 235/235 [00:00<00:00, 18521.55it/s]


100%|██████████| 228/228 [00:00<00:00, 31405.63it/s]


100%|██████████| 221/221 [00:00<00:00, 15941.07it/s]

 64%|██████▍   | 56/87 [00:13<00:01, 26.87it/s]

100%|██████████| 214/214 [00:00<00:00, 30934.00it/s]


100%|██████████| 207/207 [00:00<00:00, 33570.00it/s]


100%|██████████| 200/200 [00:00<00:00, 36644.28it/s]


100%|██████████| 193/193 [00:00<00:00, 35774.29it/s]


100%|██████████| 186/186 [00:00<00:00, 32890.95it/s]

 70%|███████   | 61/87 [00:13<00:00, 32.84it/s]

100%|██████████| 179/179 [00:00<00:00, 28052.92it/s]


100%|██████████| 172/172 [00:00<00:00, 34075.87it/s]


100%|██████████| 165/165 [00:00<00:00, 33449.02it/s]


100%|██████████| 158/158 [00:00<00:00, 33283.11it/s]


100%|██████████| 151/151 [00:00<00:00, 25500.88it/s]


100%|██████████| 144/144 [00:00<00:00, 21190.79it/s]

 77%|███████▋  | 67/87 [00:13<00:00, 39.61it/s]

100%|██████████| 137/137 [00:00<00:00, 40994.48it/s]


100%|██████████| 130/130 [00:00<00:00, 40341.78it/s]


100%|██████████| 123/123 [00:00<00:00, 41844.38it/s]


100%|██████████| 116/116 [00:00<00:00, 39249.70it/s]


100%|██████████| 109/109 [00:00<00:00, 35388.12it/s]


100%|██████████| 102/102 [00:00<00:00, 32234.71it/s]


100%|██████████| 95/95 [00:00<00:00, 20904.41it/s]


100%|██████████| 88/88 [00:00<00:00, 22926.81it/s]

 86%|████████▌ | 75/87 [00:13<00:00, 49.42it/s]

100%|██████████| 81/81 [00:00<00:00, 19341.79it/s]


100%|██████████| 74/74 [00:00<00:00, 22302.11it/s]


100%|██████████| 67/67 [00:00<00:00, 18524.61it/s]


100%|██████████| 60/60 [00:00<00:00, 23881.02it/s]


100%|██████████| 53/53 [00:00<00:00, 34491.56it/s]


100%|██████████| 46/46 [00:00<00:00, 20255.96it/s]


100%|██████████| 39/39 [00:00<00:00, 35276.66it/s]


100%|██████████| 32/32 [00:00<00:00, 37807.81it/s]


100%|██████████| 25/25 [00:00<00:00, 34663.67it/s]


100%|██████████| 18/18 [00:00<00:00, 44436.42it/s]

 98%|█████████▊| 85/87 [00:14<00:00, 63.09it/s]

100%|██████████| 11/11 [00:00<00:00, 40974.55it/s]


100%|██████████| 4/4 [00:00<00:00, 20841.26it/s]
100%|██████████| 87/87 [00:14<00:00,  6.16it/s]
Processing attack::  60%|██████    | 3/5 [00:56<00:37, 18.65s/it]
  0%|          | 0/613 [00:00<?, ?it/s]
 15%|█▍        | 90/613 [00:00<00:00, 892.99it/s]
 29%|██▉       | 180/613 [00:00<00:00, 842.13it/s]
 45%|████▌     | 277/613 [00:00<00:00, 896.36it/s]
 62%|██████▏   | 381/613 [00:00<00:00, 948.15it/s]
 79%|███████▊  | 482/613 [00:00<00:00, 967.31it/s]
100%|██████████| 613/613 [00:00<00:00, 922.26it/s]

  0%|          | 0/87 [00:00<?, ?it/s]

  0%|          | 0/606 [00:00<?, ?it/s]

 23%|██▎       | 141/606 [00:00<00:00, 1401.12it/s]

 47%|████▋     | 286/606 [00:00<00:00, 1425.85it/s]

 71%|███████   | 429/606 [00:00<00:00, 1421.43it/s]

100%|██████████| 606/606 [00:00<00:00, 1391.54it/s]

  1%|          | 1/87 [00:00<01:15,  1.15it/s]

  0%|          | 0/599 [00:00<?, ?it/s]

 25%|██▍       | 149/599 [00:00<00:00, 1486.79it/s]

 50%|████▉     | 298/599 [00:00<00:00, 1194.52it/s]

 70%|███████   | 421/599 [00:00<00:00, 1198.30it/s]

100%|██████████| 599/599 [00:00<00:00, 1273.78it/s]

  2%|▏         | 2/87 [00:01<01:15,  1.12it/s]

  0%|          | 0/592 [00:00<?, ?it/s]

 22%|██▏       | 132/592 [00:00<00:00, 1317.61it/s]

 46%|████▌     | 270/592 [00:00<00:00, 1352.15it/s]

 69%|██████▊   | 406/592 [00:00<00:00, 1346.32it/s]

100%|██████████| 592/592 [00:00<00:00, 1318.99it/s]

  3%|▎         | 3/87 [00:02<01:13,  1.14it/s]

  0%|          | 0/585 [00:00<?, ?it/s]

 31%|███       | 180/585 [00:00<00:00, 1799.46it/s]

 62%|██████▏   | 360/585 [00:00<00:00, 1626.03it/s]

100%|██████████| 585/585 [00:00<00:00, 1574.04it/s]

  5%|▍         | 4/87 [00:03<01:10,  1.19it/s]

  0%|          | 0/578 [00:00<?, ?it/s]

 25%|██▌       | 147/578 [00:00<00:00, 1466.07it/s]

 51%|█████     | 294/578 [00:00<00:00, 1307.13it/s]

100%|██████████| 578/578 [00:00<00:00, 1445.16it/s]

  6%|▌         | 5/87 [00:04<01:08,  1.20it/s]

  0%|          | 0/571 [00:00<?, ?it/s]

 28%|██▊       | 161/571 [00:00<00:00, 1607.62it/s]

 56%|█████▋    | 322/571 [00:00<00:00, 1494.37it/s]

100%|██████████| 571/571 [00:00<00:00, 1518.78it/s]

  7%|▋         | 6/87 [00:05<01:06,  1.23it/s]

  0%|          | 0/564 [00:00<?, ?it/s]

 29%|██▊       | 161/564 [00:00<00:00, 1603.65it/s]

 57%|█████▋    | 322/564 [00:00<00:00, 1541.62it/s]

100%|██████████| 564/564 [00:00<00:00, 1530.66it/s]

  8%|▊         | 7/87 [00:05<01:03,  1.26it/s]

  0%|          | 0/557 [00:00<?, ?it/s]

 28%|██▊       | 155/557 [00:00<00:00, 1546.12it/s]

 56%|█████▌    | 310/557 [00:00<00:00, 1427.18it/s]

100%|██████████| 557/557 [00:00<00:00, 1460.87it/s]

  9%|▉         | 8/87 [00:06<01:02,  1.27it/s]

  0%|          | 0/550 [00:00<?, ?it/s]

 34%|███▍      | 186/550 [00:00<00:00, 1840.85it/s]

100%|██████████| 550/550 [00:00<00:00, 1743.34it/s]

 10%|█         | 9/87 [00:07<00:57,  1.35it/s]

  0%|          | 0/543 [00:00<?, ?it/s]

 27%|██▋       | 146/543 [00:00<00:00, 1454.37it/s]

 58%|█████▊    | 314/543 [00:00<00:00, 1585.33it/s]

100%|██████████| 543/543 [00:00<00:00, 1620.16it/s]

 11%|█▏        | 10/87 [00:07<00:54,  1.41it/s]

  0%|          | 0/536 [00:00<?, ?it/s]

 37%|███▋      | 198/536 [00:00<00:00, 1979.51it/s]

100%|██████████| 536/536 [00:00<00:00, 1928.36it/s]

 13%|█▎        | 11/87 [00:08<00:50,  1.50it/s]

  0%|          | 0/529 [00:00<?, ?it/s]

 39%|███▉      | 208/529 [00:00<00:00, 2074.73it/s]

100%|██████████| 529/529 [00:00<00:00, 2029.76it/s]

 14%|█▍        | 12/87 [00:08<00:47,  1.58it/s]

  0%|          | 0/522 [00:00<?, ?it/s]

100%|██████████| 522/522 [00:00<00:00, 3393.04it/s]

 15%|█▍        | 13/87 [00:09<00:39,  1.86it/s]

  0%|          | 0/515 [00:00<?, ?it/s]

100%|██████████| 515/515 [00:00<00:00, 3315.93it/s]

 16%|█▌        | 14/87 [00:09<00:34,  2.11it/s]

  0%|          | 0/508 [00:00<?, ?it/s]

100%|██████████| 508/508 [00:00<00:00, 3793.22it/s]

 17%|█▋        | 15/87 [00:09<00:30,  2.39it/s]

100%|██████████| 501/501 [00:00<00:00, 5582.33it/s]

 18%|█▊        | 16/87 [00:10<00:24,  2.84it/s]

100%|██████████| 494/494 [00:00<00:00, 5618.72it/s]

 20%|█▉        | 17/87 [00:10<00:21,  3.30it/s]

100%|██████████| 487/487 [00:00<00:00, 5174.83it/s]

 21%|██        | 18/87 [00:10<00:19,  3.63it/s]

100%|██████████| 480/480 [00:00<00:00, 5656.51it/s]

 22%|██▏       | 19/87 [00:10<00:17,  3.97it/s]

100%|██████████| 473/473 [00:00<00:00, 5714.01it/s]

 23%|██▎       | 20/87 [00:10<00:15,  4.42it/s]

100%|██████████| 466/466 [00:00<00:00, 7028.59it/s]

 24%|██▍       | 21/87 [00:10<00:13,  4.92it/s]

100%|██████████| 459/459 [00:00<00:00, 5697.38it/s]

 25%|██▌       | 22/87 [00:11<00:12,  5.16it/s]

100%|██████████| 452/452 [00:00<00:00, 6029.29it/s]

 26%|██▋       | 23/87 [00:11<00:11,  5.40it/s]

100%|██████████| 445/445 [00:00<00:00, 7260.50it/s]

 28%|██▊       | 24/87 [00:11<00:10,  5.87it/s]

100%|██████████| 438/438 [00:00<00:00, 7781.01it/s]

 29%|██▊       | 25/87 [00:11<00:09,  6.34it/s]

100%|██████████| 431/431 [00:00<00:00, 8371.44it/s]

 30%|██▉       | 26/87 [00:11<00:08,  6.87it/s]

100%|██████████| 424/424 [00:00<00:00, 6166.49it/s]

 31%|███       | 27/87 [00:11<00:08,  7.05it/s]

100%|██████████| 417/417 [00:00<00:00, 8182.00it/s]

 32%|███▏      | 28/87 [00:11<00:08,  7.25it/s]

100%|██████████| 410/410 [00:00<00:00, 9211.29it/s]

 33%|███▎      | 29/87 [00:12<00:07,  7.82it/s]

100%|██████████| 403/403 [00:00<00:00, 11339.61it/s]


100%|██████████| 396/396 [00:00<00:00, 10730.59it/s]

 36%|███▌      | 31/87 [00:12<00:06,  9.15it/s]

100%|██████████| 389/389 [00:00<00:00, 13018.51it/s]


100%|██████████| 382/382 [00:00<00:00, 12828.98it/s]

 38%|███▊      | 33/87 [00:12<00:05, 10.55it/s]

100%|██████████| 375/375 [00:00<00:00, 10673.33it/s]


100%|██████████| 368/368 [00:00<00:00, 12494.36it/s]

 40%|████      | 35/87 [00:12<00:04, 11.39it/s]

100%|██████████| 361/361 [00:00<00:00, 9082.66it/s]


100%|██████████| 354/354 [00:00<00:00, 13524.59it/s]

 43%|████▎     | 37/87 [00:12<00:04, 12.07it/s]

100%|██████████| 347/347 [00:00<00:00, 8711.62it/s]


100%|██████████| 340/340 [00:00<00:00, 9879.68it/s]

 45%|████▍     | 39/87 [00:12<00:03, 12.15it/s]

100%|██████████| 333/333 [00:00<00:00, 10821.79it/s]


100%|██████████| 326/326 [00:00<00:00, 11776.68it/s]

 47%|████▋     | 41/87 [00:13<00:03, 12.66it/s]

100%|██████████| 319/319 [00:00<00:00, 11950.44it/s]


100%|██████████| 312/312 [00:00<00:00, 13884.59it/s]

 49%|████▉     | 43/87 [00:13<00:03, 13.76it/s]

100%|██████████| 305/305 [00:00<00:00, 13245.76it/s]


100%|██████████| 298/298 [00:00<00:00, 19903.54it/s]


100%|██████████| 291/291 [00:00<00:00, 14861.47it/s]

 53%|█████▎    | 46/87 [00:13<00:02, 16.02it/s]

100%|██████████| 284/284 [00:00<00:00, 17984.18it/s]


100%|██████████| 277/277 [00:00<00:00, 16707.25it/s]


100%|██████████| 270/270 [00:00<00:00, 16622.81it/s]

 56%|█████▋    | 49/87 [00:13<00:02, 18.75it/s]

100%|██████████| 263/263 [00:00<00:00, 24866.48it/s]


100%|██████████| 256/256 [00:00<00:00, 20760.67it/s]


100%|██████████| 249/249 [00:00<00:00, 19243.83it/s]


100%|██████████| 242/242 [00:00<00:00, 23690.55it/s]

 61%|██████    | 53/87 [00:13<00:01, 22.73it/s]

100%|██████████| 235/235 [00:00<00:00, 30273.09it/s]


100%|██████████| 228/228 [00:00<00:00, 28349.97it/s]


100%|██████████| 221/221 [00:00<00:00, 20981.01it/s]


100%|██████████| 214/214 [00:00<00:00, 30225.66it/s]


100%|██████████| 207/207 [00:00<00:00, 32333.57it/s]

 67%|██████▋   | 58/87 [00:13<00:01, 28.38it/s]

100%|██████████| 200/200 [00:00<00:00, 32650.66it/s]


100%|██████████| 193/193 [00:00<00:00, 23827.77it/s]


100%|██████████| 186/186 [00:00<00:00, 31409.15it/s]


100%|██████████| 179/179 [00:00<00:00, 26426.62it/s]


100%|██████████| 172/172 [00:00<00:00, 29702.75it/s]

 72%|███████▏  | 63/87 [00:13<00:00, 33.20it/s]

100%|██████████| 165/165 [00:00<00:00, 23556.29it/s]


100%|██████████| 158/158 [00:00<00:00, 33680.63it/s]


100%|██████████| 151/151 [00:00<00:00, 26099.89it/s]


100%|██████████| 144/144 [00:00<00:00, 36185.96it/s]


100%|██████████| 137/137 [00:00<00:00, 39103.07it/s]


100%|██████████| 130/130 [00:00<00:00, 22112.89it/s]

 79%|███████▉  | 69/87 [00:13<00:00, 39.77it/s]

100%|██████████| 123/123 [00:00<00:00, 41016.01it/s]


100%|██████████| 116/116 [00:00<00:00, 23792.81it/s]


100%|██████████| 109/109 [00:00<00:00, 29246.36it/s]


100%|██████████| 102/102 [00:00<00:00, 25787.76it/s]


100%|██████████| 95/95 [00:00<00:00, 26973.93it/s]


100%|██████████| 88/88 [00:00<00:00, 33946.36it/s]


100%|██████████| 81/81 [00:00<00:00, 32984.33it/s]


100%|██████████| 74/74 [00:00<00:00, 30438.22it/s]

 89%|████████▊ | 77/87 [00:13<00:00, 50.16it/s]

100%|██████████| 67/67 [00:00<00:00, 19854.34it/s]


100%|██████████| 60/60 [00:00<00:00, 36241.11it/s]


100%|██████████| 53/53 [00:00<00:00, 35918.26it/s]


100%|██████████| 46/46 [00:00<00:00, 36631.48it/s]


100%|██████████| 39/39 [00:00<00:00, 20335.39it/s]


100%|██████████| 32/32 [00:00<00:00, 35715.20it/s]


100%|██████████| 25/25 [00:00<00:00, 28814.95it/s]


100%|██████████| 18/18 [00:00<00:00, 39036.96it/s]


100%|██████████| 11/11 [00:00<00:00, 25631.86it/s]


100%|██████████| 4/4 [00:00<00:00, 18766.46it/s]
100%|██████████| 87/87 [00:14<00:00,  6.21it/s]
Processing attack::  80%|████████  | 4/5 [01:13<00:17, 17.83s/it]
  0%|          | 0/613 [00:00<?, ?it/s]
 18%|█▊        | 112/613 [00:00<00:00, 1116.55it/s]
 37%|███▋      | 224/613 [00:00<00:00, 1036.33it/s]
 54%|█████▎    | 329/613 [00:00<00:00, 936.80it/s]
 69%|██████▉   | 424/613 [00:00<00:00, 840.19it/s]
 83%|████████▎ | 510/613 [00:00<00:00, 774.08it/s]
100%|██████████| 613/613 [00:00<00:00, 797.09it/s]

  0%|          | 0/87 [00:00<?, ?it/s]

  0%|          | 0/606 [00:00<?, ?it/s]

 17%|█▋        | 102/606 [00:00<00:00, 1013.13it/s]

 34%|███▎      | 204/606 [00:00<00:00, 985.95it/s]

 50%|█████     | 303/606 [00:00<00:00, 983.93it/s]

 66%|██████▋   | 402/606 [00:00<00:00, 979.45it/s]

 83%|████████▎ | 500/606 [00:00<00:00, 978.06it/s]

100%|██████████| 606/606 [00:00<00:00, 970.93it/s]

  1%|          | 1/87 [00:01<02:00,  1.40s/it]

  0%|          | 0/599 [00:00<?, ?it/s]

 17%|█▋        | 100/599 [00:00<00:00, 992.84it/s]

 34%|███▍      | 204/599 [00:00<00:00, 1015.24it/s]

 52%|█████▏    | 309/599 [00:00<00:00, 1026.79it/s]

 69%|██████▉   | 412/599 [00:00<00:00, 970.57it/s]

100%|██████████| 599/599 [00:00<00:00, 934.39it/s]

  2%|▏         | 2/87 [00:02<01:51,  1.31s/it]

  0%|          | 0/592 [00:00<?, ?it/s]

 33%|███▎      | 198/592 [00:00<00:00, 1969.03it/s]

 67%|██████▋   | 395/592 [00:00<00:00, 1954.86it/s]

100%|██████████| 592/592 [00:00<00:00, 1892.15it/s]

  3%|▎         | 3/87 [00:03<01:24,  1.01s/it]

  0%|          | 0/585 [00:00<?, ?it/s]

 28%|██▊       | 162/585 [00:00<00:00, 1619.89it/s]

 63%|██████▎   | 367/585 [00:00<00:00, 1870.72it/s]

100%|██████████| 585/585 [00:00<00:00, 1807.23it/s]

  5%|▍         | 4/87 [00:03<01:12,  1.14it/s]

  0%|          | 0/578 [00:00<?, ?it/s]

 38%|███▊      | 217/578 [00:00<00:00, 2159.79it/s]

100%|██████████| 578/578 [00:00<00:00, 1850.13it/s]

  6%|▌         | 5/87 [00:04<01:04,  1.27it/s]

  0%|          | 0/571 [00:00<?, ?it/s]

 37%|███▋      | 212/571 [00:00<00:00, 2116.31it/s]

100%|██████████| 571/571 [00:00<00:00, 2020.32it/s]

  7%|▋         | 6/87 [00:05<01:00,  1.35it/s]

  0%|          | 0/564 [00:00<?, ?it/s]

 28%|██▊       | 160/564 [00:00<00:00, 1595.14it/s]

 64%|██████▍   | 360/564 [00:00<00:00, 1828.06it/s]

100%|██████████| 564/564 [00:00<00:00, 1792.60it/s]

  8%|▊         | 7/87 [00:05<00:56,  1.42it/s]

  0%|          | 0/557 [00:00<?, ?it/s]

 26%|██▌       | 143/557 [00:00<00:00, 1423.30it/s]

 60%|██████    | 335/557 [00:00<00:00, 1712.10it/s]

100%|██████████| 557/557 [00:00<00:00, 1656.28it/s]

  9%|▉         | 8/87 [00:06<00:54,  1.44it/s]

  0%|          | 0/550 [00:00<?, ?it/s]

 29%|██▉       | 161/550 [00:00<00:00, 1607.86it/s]

100%|██████████| 550/550 [00:00<00:00, 1862.84it/s]

 10%|█         | 9/87 [00:07<00:52,  1.47it/s]

  0%|          | 0/543 [00:00<?, ?it/s]

 38%|███▊      | 205/543 [00:00<00:00, 2047.41it/s]

100%|██████████| 543/543 [00:00<00:00, 1905.26it/s]

 11%|█▏        | 10/87 [00:07<00:50,  1.52it/s]

  0%|          | 0/536 [00:00<?, ?it/s]

 38%|███▊      | 205/536 [00:00<00:00, 2049.02it/s]

100%|██████████| 536/536 [00:00<00:00, 1981.88it/s]

 13%|█▎        | 11/87 [00:08<00:47,  1.59it/s]

  0%|          | 0/529 [00:00<?, ?it/s]

 35%|███▍      | 185/529 [00:00<00:00, 1836.65it/s]

100%|██████████| 529/529 [00:00<00:00, 1994.79it/s]

 14%|█▍        | 12/87 [00:08<00:45,  1.65it/s]

  0%|          | 0/522 [00:00<?, ?it/s]

100%|██████████| 522/522 [00:00<00:00, 3169.08it/s]

 15%|█▍        | 13/87 [00:09<00:39,  1.90it/s]

  0%|          | 0/515 [00:00<?, ?it/s]

100%|██████████| 515/515 [00:00<00:00, 3069.24it/s]

 16%|█▌        | 14/87 [00:09<00:34,  2.14it/s]

  0%|          | 0/508 [00:00<?, ?it/s]

100%|██████████| 508/508 [00:00<00:00, 3618.54it/s]

 17%|█▋        | 15/87 [00:09<00:30,  2.38it/s]

  0%|          | 0/501 [00:00<?, ?it/s]

100%|██████████| 501/501 [00:00<00:00, 4155.23it/s]

 18%|█▊        | 16/87 [00:10<00:26,  2.72it/s]

100%|██████████| 494/494 [00:00<00:00, 5368.87it/s]

 20%|█▉        | 17/87 [00:10<00:22,  3.17it/s]

100%|██████████| 487/487 [00:00<00:00, 5812.39it/s]

 21%|██        | 18/87 [00:10<00:19,  3.55it/s]

  0%|          | 0/480 [00:00<?, ?it/s]

100%|██████████| 480/480 [00:00<00:00, 3897.80it/s]

 22%|██▏       | 19/87 [00:10<00:18,  3.77it/s]

100%|██████████| 473/473 [00:00<00:00, 5285.43it/s]

 23%|██▎       | 20/87 [00:10<00:16,  4.12it/s]

100%|██████████| 466/466 [00:00<00:00, 6492.17it/s]

 24%|██▍       | 21/87 [00:11<00:14,  4.61it/s]

100%|██████████| 459/459 [00:00<00:00, 5203.57it/s]

 25%|██▌       | 22/87 [00:11<00:13,  4.84it/s]

100%|██████████| 452/452 [00:00<00:00, 5244.88it/s]

 26%|██▋       | 23/87 [00:11<00:12,  5.09it/s]

100%|██████████| 445/445 [00:00<00:00, 7485.71it/s]

 28%|██▊       | 24/87 [00:11<00:11,  5.65it/s]

100%|██████████| 438/438 [00:00<00:00, 8086.28it/s]

 29%|██▊       | 25/87 [00:11<00:09,  6.24it/s]

100%|██████████| 431/431 [00:00<00:00, 8265.49it/s]

 30%|██▉       | 26/87 [00:11<00:09,  6.68it/s]

100%|██████████| 424/424 [00:00<00:00, 6683.35it/s]

 31%|███       | 27/87 [00:11<00:08,  6.98it/s]

100%|██████████| 417/417 [00:00<00:00, 8097.00it/s]

 32%|███▏      | 28/87 [00:12<00:07,  7.43it/s]

100%|██████████| 410/410 [00:00<00:00, 9321.89it/s]

 33%|███▎      | 29/87 [00:12<00:07,  8.01it/s]

100%|██████████| 403/403 [00:00<00:00, 11799.11it/s]


100%|██████████| 396/396 [00:00<00:00, 10944.62it/s]

 36%|███▌      | 31/87 [00:12<00:05,  9.54it/s]

100%|██████████| 389/389 [00:00<00:00, 10938.12it/s]


100%|██████████| 382/382 [00:00<00:00, 14285.42it/s]

 38%|███▊      | 33/87 [00:12<00:04, 10.92it/s]

100%|██████████| 375/375 [00:00<00:00, 13005.86it/s]


100%|██████████| 368/368 [00:00<00:00, 8691.14it/s]

 40%|████      | 35/87 [00:12<00:04, 11.86it/s]

100%|██████████| 361/361 [00:00<00:00, 14128.03it/s]


100%|██████████| 354/354 [00:00<00:00, 15920.56it/s]

 43%|████▎     | 37/87 [00:12<00:03, 13.29it/s]

100%|██████████| 347/347 [00:00<00:00, 15444.13it/s]


100%|██████████| 340/340 [00:00<00:00, 16094.25it/s]

 45%|████▍     | 39/87 [00:12<00:03, 14.91it/s]

100%|██████████| 333/333 [00:00<00:00, 10690.99it/s]


100%|██████████| 326/326 [00:00<00:00, 12190.46it/s]

 47%|████▋     | 41/87 [00:12<00:03, 15.17it/s]

100%|██████████| 319/319 [00:00<00:00, 13648.15it/s]


100%|██████████| 312/312 [00:00<00:00, 15600.94it/s]

 49%|████▉     | 43/87 [00:13<00:02, 16.23it/s]

100%|██████████| 305/305 [00:00<00:00, 18316.00it/s]


100%|██████████| 298/298 [00:00<00:00, 17203.49it/s]


100%|██████████| 291/291 [00:00<00:00, 19259.96it/s]

 53%|█████▎    | 46/87 [00:13<00:02, 18.15it/s]

100%|██████████| 284/284 [00:00<00:00, 19277.91it/s]


100%|██████████| 277/277 [00:00<00:00, 22137.96it/s]


100%|██████████| 270/270 [00:00<00:00, 24601.09it/s]

 56%|█████▋    | 49/87 [00:13<00:01, 21.04it/s]

100%|██████████| 263/263 [00:00<00:00, 14553.18it/s]


100%|██████████| 256/256 [00:00<00:00, 17786.61it/s]


100%|██████████| 249/249 [00:00<00:00, 31324.25it/s]

 60%|█████▉    | 52/87 [00:13<00:01, 23.14it/s]

100%|██████████| 242/242 [00:00<00:00, 20167.33it/s]


100%|██████████| 235/235 [00:00<00:00, 17628.48it/s]


100%|██████████| 228/228 [00:00<00:00, 30070.48it/s]


100%|██████████| 221/221 [00:00<00:00, 23975.51it/s]

 64%|██████▍   | 56/87 [00:13<00:01, 26.86it/s]

100%|██████████| 214/214 [00:00<00:00, 33262.22it/s]


100%|██████████| 207/207 [00:00<00:00, 18938.59it/s]


100%|██████████| 200/200 [00:00<00:00, 32109.50it/s]


100%|██████████| 193/193 [00:00<00:00, 34570.41it/s]


100%|██████████| 186/186 [00:00<00:00, 31428.13it/s]

 70%|███████   | 61/87 [00:13<00:00, 32.83it/s]

100%|██████████| 179/179 [00:00<00:00, 23240.38it/s]


100%|██████████| 172/172 [00:00<00:00, 35085.12it/s]


100%|██████████| 165/165 [00:00<00:00, 36324.80it/s]


100%|██████████| 158/158 [00:00<00:00, 25530.69it/s]


100%|██████████| 151/151 [00:00<00:00, 23133.17it/s]


100%|██████████| 144/144 [00:00<00:00, 24193.06it/s]

 77%|███████▋  | 67/87 [00:13<00:00, 39.43it/s]

100%|██████████| 137/137 [00:00<00:00, 44276.44it/s]


100%|██████████| 130/130 [00:00<00:00, 28832.93it/s]


100%|██████████| 123/123 [00:00<00:00, 28488.56it/s]


100%|██████████| 116/116 [00:00<00:00, 25069.01it/s]


100%|██████████| 109/109 [00:00<00:00, 31957.16it/s]


100%|██████████| 102/102 [00:00<00:00, 25722.64it/s]


100%|██████████| 95/95 [00:00<00:00, 40993.71it/s]

 85%|████████▌ | 74/87 [00:13<00:00, 46.44it/s]

100%|██████████| 88/88 [00:00<00:00, 25699.68it/s]


100%|██████████| 81/81 [00:00<00:00, 25408.62it/s]


100%|██████████| 74/74 [00:00<00:00, 38928.70it/s]


100%|██████████| 67/67 [00:00<00:00, 21455.06it/s]


100%|██████████| 60/60 [00:00<00:00, 22308.15it/s]


100%|██████████| 53/53 [00:00<00:00, 32604.59it/s]


100%|██████████| 46/46 [00:00<00:00, 35105.16it/s]


100%|██████████| 39/39 [00:00<00:00, 36792.14it/s]


100%|██████████| 32/32 [00:00<00:00, 26122.56it/s]

 95%|█████████▌| 83/87 [00:13<00:00, 58.21it/s]

100%|██████████| 25/25 [00:00<00:00, 34044.68it/s]


100%|██████████| 18/18 [00:00<00:00, 30454.81it/s]


100%|██████████| 11/11 [00:00<00:00, 38224.81it/s]


100%|██████████| 4/4 [00:00<00:00, 23334.10it/s]
100%|██████████| 87/87 [00:14<00:00,  6.21it/s]
Processing attack:: 100%|██████████| 5/5 [01:30<00:00, 18.00s/it]
[13]:
map_robustness_analysis(TN)
100%|██████████| 9/9 [00:00<00:00, 22.53it/s]

Machine learning pipeline to cluster the network#

[14]:
gw = GraphWave()

emb_df = gw.get_embedding_df(TN.get_higher_complexity())

clusters_dct = get_clusters(TN.get_higher_complexity(), type='kmeans', embedding=emb_df, k=3)

plot_clusters_embedding(emb_df, clusters_dct)
map_clusters(TN, clusters_dct)
/home/anthony/Desktop/Group Project/XYZnetwork_lib/venv/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning:

The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning

GNN pipeline to cluster the network#

Create GNN model#

[15]:
args = {
    "node_features" : ["position"], # choices are ["degree_one_hot", "one_hot", "constant", "pagerank", "degree", "betweenness", "closeness", "eigenvector", "clustering", "position", "distance"]
    "edge_attrs" : ["departure_time"], # choices are ["distance", "dep_time", "arr_time"]
    "train_ratio" : 0.8,
    "val_ratio" : 0.2,

    "layers" : 2,
    "model": "gat",  # choices are ["gcn", "gin", "gat", "sage"]

    "lr" : 0.001,
    "epochs" : 200,

    "loss" : "infonce",
    "augment_list" : ["edge_perturbation", "node_dropping"],
}



args = GNNConfig(args)
[16]:
# Create data
data = create_data_from_transport_network(TN.graph, TN, args).to(args.device)

# Create model
ssl_model = SSL_GNN(data.num_node_features, args).to(args.device)

# Create the optimizer
optimizer = torch.optim.Adam(ssl_model.parameters(), lr=args.lr)
100%|██████████| 613/613 [02:00<00:00,  5.10it/s]

Train model#

[17]:
# Train model
train_self_supervised(data, ssl_model, optimizer, args)
Epoch: 1, Train Loss: 6.175541400909424, Val Loss: 4.6401472091674805
Epoch: 2, Train Loss: 6.165186405181885, Val Loss: 4.621582508087158
Epoch: 3, Train Loss: 6.137016773223877, Val Loss: 4.573115348815918
Epoch: 4, Train Loss: 6.137843608856201, Val Loss: 4.508846759796143
Epoch: 5, Train Loss: 6.140758514404297, Val Loss: 4.412999153137207
Epoch: 6, Train Loss: 6.066816806793213, Val Loss: 4.322457790374756
Epoch: 7, Train Loss: 6.084362983703613, Val Loss: 4.187949180603027
Epoch: 8, Train Loss: 6.020055294036865, Val Loss: 4.065433979034424
Epoch: 9, Train Loss: 5.951279640197754, Val Loss: 3.9332938194274902
Epoch: 10, Train Loss: 5.905524730682373, Val Loss: 3.837998628616333
Epoch: 11, Train Loss: 5.846800804138184, Val Loss: 3.7115979194641113
Epoch: 12, Train Loss: 5.765684604644775, Val Loss: 3.654060125350952
Epoch: 13, Train Loss: 5.711491584777832, Val Loss: 3.5846762657165527
Epoch: 14, Train Loss: 5.643587589263916, Val Loss: 3.599376678466797
Epoch: 15, Train Loss: 5.621657848358154, Val Loss: 3.6026875972747803
Epoch: 16, Train Loss: 5.516519546508789, Val Loss: 3.5432722568511963
Epoch: 17, Train Loss: 5.495982646942139, Val Loss: 3.5931057929992676
Epoch: 18, Train Loss: 5.44849157333374, Val Loss: 3.5444960594177246
Epoch: 19, Train Loss: 5.459173202514648, Val Loss: 3.5548784732818604
Epoch: 20, Train Loss: 5.3404316902160645, Val Loss: 3.547093629837036
Epoch: 21, Train Loss: 5.314237594604492, Val Loss: 3.547714948654175
Epoch: 22, Train Loss: 5.305752277374268, Val Loss: 3.542719602584839
Epoch: 23, Train Loss: 5.256820201873779, Val Loss: 3.505249261856079
Epoch: 24, Train Loss: 5.239745140075684, Val Loss: 3.5143473148345947
Epoch: 25, Train Loss: 5.205666542053223, Val Loss: 3.5303795337677
Epoch: 26, Train Loss: 5.1911139488220215, Val Loss: 3.5188703536987305
Epoch: 27, Train Loss: 5.177889347076416, Val Loss: 3.5028531551361084
Epoch: 28, Train Loss: 5.139930725097656, Val Loss: 3.5208795070648193
Epoch: 29, Train Loss: 5.14262580871582, Val Loss: 3.532407283782959
Epoch: 30, Train Loss: 5.10964298248291, Val Loss: 3.506572723388672
Epoch: 31, Train Loss: 5.091980934143066, Val Loss: 3.4889495372772217
Epoch: 32, Train Loss: 5.095240116119385, Val Loss: 3.493278741836548
Epoch: 33, Train Loss: 5.0643415451049805, Val Loss: 3.4744207859039307
Epoch: 34, Train Loss: 5.078542232513428, Val Loss: 3.472468137741089
Epoch: 35, Train Loss: 5.053869247436523, Val Loss: 3.4628825187683105
Epoch: 36, Train Loss: 5.033364772796631, Val Loss: 3.462650775909424
Epoch: 37, Train Loss: 5.01200008392334, Val Loss: 3.437474012374878
Epoch: 38, Train Loss: 5.00202751159668, Val Loss: 3.40383243560791
Epoch: 39, Train Loss: 4.984353542327881, Val Loss: 3.4068446159362793
Epoch: 40, Train Loss: 4.981302738189697, Val Loss: 3.3649938106536865
Epoch: 41, Train Loss: 4.958160877227783, Val Loss: 3.3868987560272217
Epoch: 42, Train Loss: 4.963011264801025, Val Loss: 3.4005274772644043
Epoch: 43, Train Loss: 4.951054573059082, Val Loss: 3.395815372467041
Epoch: 44, Train Loss: 4.917444705963135, Val Loss: 3.352619171142578
Epoch: 45, Train Loss: 4.910520553588867, Val Loss: 3.3633506298065186
Epoch: 46, Train Loss: 4.8997344970703125, Val Loss: 3.338639974594116
Epoch: 47, Train Loss: 4.9124932289123535, Val Loss: 3.323990821838379
Epoch: 48, Train Loss: 4.877128601074219, Val Loss: 3.3107619285583496
Epoch: 49, Train Loss: 4.869313716888428, Val Loss: 3.320084810256958
Epoch: 50, Train Loss: 4.8800835609436035, Val Loss: 3.313464403152466
Epoch: 51, Train Loss: 4.864095211029053, Val Loss: 3.2920382022857666
Epoch: 52, Train Loss: 4.865602970123291, Val Loss: 3.2860617637634277
Epoch: 53, Train Loss: 4.85732889175415, Val Loss: 3.3031105995178223
Epoch: 54, Train Loss: 4.858405590057373, Val Loss: 3.288318634033203
Epoch: 55, Train Loss: 4.838765621185303, Val Loss: 3.2894110679626465
Epoch: 56, Train Loss: 4.835594654083252, Val Loss: 3.2820382118225098
Epoch: 57, Train Loss: 4.828744411468506, Val Loss: 3.2698450088500977
Epoch: 58, Train Loss: 4.830524921417236, Val Loss: 3.2688705921173096
Epoch: 59, Train Loss: 4.823407173156738, Val Loss: 3.2678515911102295
Epoch: 60, Train Loss: 4.808182716369629, Val Loss: 3.2587931156158447
Epoch: 61, Train Loss: 4.818406105041504, Val Loss: 3.2607975006103516
Epoch: 62, Train Loss: 4.790672779083252, Val Loss: 3.2627532482147217
Epoch: 63, Train Loss: 4.796024799346924, Val Loss: 3.2653095722198486
Epoch: 64, Train Loss: 4.778975009918213, Val Loss: 3.269767999649048
Epoch: 65, Train Loss: 4.793673038482666, Val Loss: 3.2390100955963135
Epoch: 66, Train Loss: 4.784870624542236, Val Loss: 3.26735782623291
Epoch: 67, Train Loss: 4.775079727172852, Val Loss: 3.2326619625091553
Epoch: 68, Train Loss: 4.777248382568359, Val Loss: 3.2375247478485107
Epoch: 69, Train Loss: 4.7871623039245605, Val Loss: 3.23917818069458
Epoch: 70, Train Loss: 4.778112888336182, Val Loss: 3.242129325866699
Epoch: 71, Train Loss: 4.76801872253418, Val Loss: 3.207897186279297
Epoch: 72, Train Loss: 4.765249729156494, Val Loss: 3.2239482402801514
Epoch: 73, Train Loss: 4.75560188293457, Val Loss: 3.224822998046875
Epoch: 74, Train Loss: 4.762436389923096, Val Loss: 3.2127676010131836
Epoch: 75, Train Loss: 4.75024938583374, Val Loss: 3.209044933319092
Epoch: 76, Train Loss: 4.741896152496338, Val Loss: 3.212468385696411
Epoch: 77, Train Loss: 4.742732524871826, Val Loss: 3.2058560848236084
Epoch: 78, Train Loss: 4.7404327392578125, Val Loss: 3.207453727722168
Epoch: 79, Train Loss: 4.741640567779541, Val Loss: 3.1954760551452637
Epoch: 80, Train Loss: 4.727570533752441, Val Loss: 3.1868584156036377
Epoch: 81, Train Loss: 4.735937595367432, Val Loss: 3.2000036239624023
Epoch: 82, Train Loss: 4.7315263748168945, Val Loss: 3.1774449348449707
Epoch: 83, Train Loss: 4.718042373657227, Val Loss: 3.193479537963867
Epoch: 84, Train Loss: 4.714792251586914, Val Loss: 3.1850171089172363
Epoch: 85, Train Loss: 4.7087297439575195, Val Loss: 3.179201602935791
Epoch: 86, Train Loss: 4.703948497772217, Val Loss: 3.160034418106079
Epoch: 87, Train Loss: 4.689323902130127, Val Loss: 3.1622252464294434
Epoch: 88, Train Loss: 4.691718101501465, Val Loss: 3.1714465618133545
Epoch: 89, Train Loss: 4.678915023803711, Val Loss: 3.155579090118408
Epoch: 90, Train Loss: 4.681928634643555, Val Loss: 3.143484115600586
Epoch: 91, Train Loss: 4.682182788848877, Val Loss: 3.1388909816741943
Epoch: 92, Train Loss: 4.678615570068359, Val Loss: 3.13250732421875
Epoch: 93, Train Loss: 4.666132926940918, Val Loss: 3.1212263107299805
Epoch: 94, Train Loss: 4.674240589141846, Val Loss: 3.126741409301758
Epoch: 95, Train Loss: 4.6670379638671875, Val Loss: 3.125051975250244
Epoch: 96, Train Loss: 4.6579437255859375, Val Loss: 3.136636734008789
Epoch: 97, Train Loss: 4.659397125244141, Val Loss: 3.1238229274749756
Epoch: 98, Train Loss: 4.660508632659912, Val Loss: 3.134683609008789
Epoch: 99, Train Loss: 4.650249004364014, Val Loss: 3.1199448108673096
Epoch: 100, Train Loss: 4.632353782653809, Val Loss: 3.111192464828491
Epoch: 101, Train Loss: 4.65403413772583, Val Loss: 3.1257665157318115
Epoch: 102, Train Loss: 4.646122455596924, Val Loss: 3.1219727993011475
Epoch: 103, Train Loss: 4.626082897186279, Val Loss: 3.107996702194214
Epoch: 104, Train Loss: 4.62863826751709, Val Loss: 3.108457326889038
Epoch: 105, Train Loss: 4.628318786621094, Val Loss: 3.108051300048828
Epoch: 106, Train Loss: 4.648366928100586, Val Loss: 3.1087100505828857
Epoch: 107, Train Loss: 4.636220932006836, Val Loss: 3.1174275875091553
Epoch: 108, Train Loss: 4.616308689117432, Val Loss: 3.1174399852752686
Epoch: 109, Train Loss: 4.617178916931152, Val Loss: 3.1161653995513916
Epoch: 110, Train Loss: 4.627208709716797, Val Loss: 3.101362943649292
Epoch: 111, Train Loss: 4.616775989532471, Val Loss: 3.1151163578033447
Epoch: 112, Train Loss: 4.61387825012207, Val Loss: 3.096498966217041
Epoch: 113, Train Loss: 4.612590789794922, Val Loss: 3.0964856147766113
Epoch: 114, Train Loss: 4.599580764770508, Val Loss: 3.101086378097534
Epoch: 115, Train Loss: 4.593467712402344, Val Loss: 3.0920379161834717
Epoch: 116, Train Loss: 4.605584144592285, Val Loss: 3.0890588760375977
Epoch: 117, Train Loss: 4.592251300811768, Val Loss: 3.0934338569641113
Epoch: 118, Train Loss: 4.599854469299316, Val Loss: 3.079991102218628
Epoch: 119, Train Loss: 4.5932817459106445, Val Loss: 3.0885348320007324
Epoch: 120, Train Loss: 4.597029685974121, Val Loss: 3.0941150188446045
Epoch: 121, Train Loss: 4.595119476318359, Val Loss: 3.088383436203003
Epoch: 122, Train Loss: 4.587526798248291, Val Loss: 3.096750497817993
Epoch: 123, Train Loss: 4.579897880554199, Val Loss: 3.0796730518341064
Epoch: 124, Train Loss: 4.586674690246582, Val Loss: 3.093437671661377
Epoch: 125, Train Loss: 4.58022928237915, Val Loss: 3.0934972763061523
Epoch: 126, Train Loss: 4.575448513031006, Val Loss: 3.092965602874756
Epoch: 127, Train Loss: 4.582917213439941, Val Loss: 3.081746816635132
Epoch: 128, Train Loss: 4.570718288421631, Val Loss: 3.0880918502807617
Epoch: 129, Train Loss: 4.581130027770996, Val Loss: 3.086928606033325
Epoch: 130, Train Loss: 4.568184852600098, Val Loss: 3.087228775024414
Epoch: 131, Train Loss: 4.584911346435547, Val Loss: 3.0791213512420654
Epoch: 132, Train Loss: 4.573314666748047, Val Loss: 3.085252285003662
Epoch: 133, Train Loss: 4.567775249481201, Val Loss: 3.084843397140503
Epoch: 134, Train Loss: 4.579724311828613, Val Loss: 3.082167863845825
Epoch: 135, Train Loss: 4.569276332855225, Val Loss: 3.0829482078552246
Epoch: 136, Train Loss: 4.565314769744873, Val Loss: 3.0809290409088135
Epoch: 137, Train Loss: 4.574264049530029, Val Loss: 3.0784876346588135
Epoch: 138, Train Loss: 4.565886497497559, Val Loss: 3.082606315612793
Epoch: 139, Train Loss: 4.5717339515686035, Val Loss: 3.074709892272949
Epoch: 140, Train Loss: 4.563697338104248, Val Loss: 3.0775835514068604
Epoch: 141, Train Loss: 4.564490795135498, Val Loss: 3.068920135498047
Epoch: 142, Train Loss: 4.571242332458496, Val Loss: 3.058178663253784
Epoch: 143, Train Loss: 4.553027629852295, Val Loss: 3.0721323490142822
Epoch: 144, Train Loss: 4.561403274536133, Val Loss: 3.0747182369232178
Epoch: 145, Train Loss: 4.553050994873047, Val Loss: 3.0812172889709473
Epoch: 146, Train Loss: 4.559077739715576, Val Loss: 3.081716775894165
Epoch: 147, Train Loss: 4.558478355407715, Val Loss: 3.0709331035614014
Epoch: 148, Train Loss: 4.5468430519104, Val Loss: 3.0778684616088867
Epoch: 149, Train Loss: 4.5536980628967285, Val Loss: 3.081664562225342
Epoch: 150, Train Loss: 4.553882598876953, Val Loss: 3.079587936401367
Epoch: 151, Train Loss: 4.558004379272461, Val Loss: 3.058750867843628
Epoch: 152, Train Loss: 4.552406311035156, Val Loss: 3.0835866928100586
Epoch: 153, Train Loss: 4.553356647491455, Val Loss: 3.063716173171997
Epoch: 154, Train Loss: 4.548372268676758, Val Loss: 3.0638179779052734
Epoch: 155, Train Loss: 4.548031330108643, Val Loss: 3.074063301086426
Epoch: 156, Train Loss: 4.539443016052246, Val Loss: 3.068603754043579
Epoch: 157, Train Loss: 4.543023586273193, Val Loss: 3.0723633766174316
Epoch: 158, Train Loss: 4.541362762451172, Val Loss: 3.064699172973633
Epoch: 159, Train Loss: 4.539776802062988, Val Loss: 3.067152976989746
Epoch: 160, Train Loss: 4.543396472930908, Val Loss: 3.067138195037842
Epoch: 161, Train Loss: 4.542850017547607, Val Loss: 3.074418544769287
Epoch: 162, Train Loss: 4.532594680786133, Val Loss: 3.077169895172119
Epoch: 163, Train Loss: 4.542054176330566, Val Loss: 3.056513786315918
Epoch: 164, Train Loss: 4.529015064239502, Val Loss: 3.057905435562134
Epoch: 165, Train Loss: 4.532743453979492, Val Loss: 3.0556800365448
Epoch: 166, Train Loss: 4.526042938232422, Val Loss: 3.0694518089294434
Epoch: 167, Train Loss: 4.533532619476318, Val Loss: 3.0621867179870605
Epoch: 168, Train Loss: 4.5321149826049805, Val Loss: 3.063549041748047
Epoch: 169, Train Loss: 4.52910041809082, Val Loss: 3.051084280014038
Epoch: 170, Train Loss: 4.538821220397949, Val Loss: 3.0678415298461914
Epoch: 171, Train Loss: 4.527117729187012, Val Loss: 3.058896541595459
Epoch: 172, Train Loss: 4.525818824768066, Val Loss: 3.053851842880249
Epoch: 173, Train Loss: 4.528687000274658, Val Loss: 3.0632615089416504
Epoch: 174, Train Loss: 4.525545120239258, Val Loss: 3.049077033996582
Epoch: 175, Train Loss: 4.527365207672119, Val Loss: 3.0633230209350586
Epoch: 176, Train Loss: 4.521368980407715, Val Loss: 3.0527305603027344
Epoch: 177, Train Loss: 4.528260707855225, Val Loss: 3.0569040775299072
Epoch: 178, Train Loss: 4.531463623046875, Val Loss: 3.0460755825042725
Epoch: 179, Train Loss: 4.5167317390441895, Val Loss: 3.0561931133270264
Epoch: 180, Train Loss: 4.523371696472168, Val Loss: 3.059535026550293
Epoch: 181, Train Loss: 4.515563011169434, Val Loss: 3.0557353496551514
Epoch: 182, Train Loss: 4.52605676651001, Val Loss: 3.0651724338531494
Epoch: 183, Train Loss: 4.518230438232422, Val Loss: 3.064960479736328
Epoch: 184, Train Loss: 4.521439075469971, Val Loss: 3.047875165939331
Epoch: 185, Train Loss: 4.520839214324951, Val Loss: 3.057209014892578
Epoch: 186, Train Loss: 4.5212626457214355, Val Loss: 3.058290719985962
Epoch: 187, Train Loss: 4.515894889831543, Val Loss: 3.049534320831299
Epoch: 188, Train Loss: 4.523036479949951, Val Loss: 3.052393913269043
Epoch: 189, Train Loss: 4.5323920249938965, Val Loss: 3.043151378631592
Epoch: 190, Train Loss: 4.522473335266113, Val Loss: 3.039036989212036
Epoch: 191, Train Loss: 4.513176441192627, Val Loss: 3.059544563293457
Epoch: 192, Train Loss: 4.516465663909912, Val Loss: 3.0428316593170166
Epoch: 193, Train Loss: 4.516859531402588, Val Loss: 3.039519786834717
Epoch: 194, Train Loss: 4.51363468170166, Val Loss: 3.047665596008301
Epoch: 195, Train Loss: 4.512304782867432, Val Loss: 3.0405797958374023
Epoch: 196, Train Loss: 4.522615432739258, Val Loss: 3.0372507572174072
Epoch: 197, Train Loss: 4.516915321350098, Val Loss: 3.0554823875427246
Epoch: 198, Train Loss: 4.515917778015137, Val Loss: 3.056680202484131
Epoch: 199, Train Loss: 4.509296417236328, Val Loss: 3.037299633026123
Epoch: 200, Train Loss: 4.521661281585693, Val Loss: 3.0372421741485596
Best Val Loss: 3.0372421741485596

Get embedding#

[18]:
emb = get_graph_embedding(data, ssl_model)

clusters_dct = get_clusters(TN.get_higher_complexity(), type='kmeans', embedding=emb, k=24)

plot_clusters_embedding(emb, clusters_dct)
map_clusters(TN, clusters_dct)
/home/anthony/Desktop/Group Project/XYZnetwork_lib/venv/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:870: FutureWarning:

The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning

[18]: